9

Hello I am trying to include jquery and bootstrap into a Reactjs project, but I am using es6 imports to do so. I've included the imports as shown below in my index.js file. But upon page load it gives error saying that Bootstrap's Javascript requires jquery. I've already npm installed all the required packages. How can I get jquery into my bundled and minified final script file?

import $ from 'jquery';
import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
import '../node_modules/bootstrap/dist/js/bootstrap.min.js';

6 Answers 6

24

Found the answer on this site here

Step 1: Install both jquery and bootstrap

npm install jquery bootstrap --save

Step 2: Import them in vendor.ts:

import 'jquery';
import 'bootstrap/dist/js/bootstrap';

Step 3: Go to wepback.common.js in config directory and add this inside plugin section:

plugins:[
    .....
    ..... ,
    new webpack.ProvidePlugin({   
        jQuery: 'jquery',
        $: 'jquery',
        jquery: 'jquery'
    })
]

This will let bootstrap to find jquery

As mentioned here you can not depend on ES6 respecting the order of your import statements

Sign up to request clarification or add additional context in comments.

4 Comments

ty for the important info @David !
@david I am creating a new project using CLI create-react-app. Can you tell how and where to import in it? There is no config directory in the project created by create-react-app.
If you want to use this with create-react-app either set jquery on the window object yourself (like the next answer suggests) or npm run/yarn eject and then you'll find webpack config files under config/ where you can add these dependencies
import 'jquery'; import 'bootstrap/dist/js/bootstrap'; its worked for me
2
window.$ = window.jQuery = require('jquery');

You can use Gulp and webpack to minify your files

1 Comment

Not looking to use a different importer. I'm currently using es6 imports, webpack, and babel for bundling minification. And I'd like to keep it that way.
2

Testing with this

import jquery from 'jquery'

window.jQuery = jquery

require('bootstrap')

Comments

1

For some reason jquery needs to be defined in lowercase too

import jQuery from 'jquery'
global.jQuery = jQuery
global.jquery = jQuery // jquery lowercase  was the solution
global.$ = jQuery
let Bootstrap = require('bootstrap')
import 'bootstrap/dist/css/bootstrap.css'

Comments

1

After import all style css file add the below code in your index.js file

window.jQuery = window.$ = require('jquery/dist/jquery.min.js');
require('bootstrap/dist/js/bootstrap.min.js');

Comments

0

For me it's work in this way

import 'bootstrap/dist/css/bootstrap.css'
require('jquery')
require('bootstrap')

my react version is 17.0.2

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.