jquery - with - How to solve error “Cannot set property 'emulateTransitionEnd' of undefined” in Bootstrap node.js app?

uncaught typeerror cannot set property bootstrap of undefined (3)

I created Node.js application from scratch and I have added in app.js.

global.jQuery = require('jquery'); 

After that it gives me error as below:

  $.fn.emulateTransitionEnd = function (duration) {
    TypeError: Cannot set property 'emulateTransitionEnd' of undefined
    at /home/yojna/web/node_modules/bootstrap/js/transition.js:36:29
    at Object.<anonymous>(/home/yojna/web/node_modules/bootstrap/js/transition.js:59:2)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> 
    at Module._compile (module.js:456:26)
    [email protected]-Inspiron-7520:~/web$ 

I had this problem, and it was because I had included "bootstrap" in my vendor webpack 2 config but was using:


So the browser couldn't properly find the bootstrap-loader package.

NPM is made to include server-side libraries. To include client-side libraries such as bootstrap or jquery, you shoud use Bower instead.

I've done this in an expressjs app :

  1. Create a .bowerrc file and write the following lines :

      "directory" : "public/components"
  2. Download bootstrap and jquery with Bower :

    bower install bootstrap
  3. Then, define your public folder to be static in your app.js file :

    app.use(express.static(__dirname + '/public'));
  4. Finally, add the script tag in your view (I'am using Jade here) :


You shouldn't require it. Jquery is a client side library while Node.js is a backend server.

If you want to use Jquery with your Node.js app, simply add it to your HTML files with:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>