Webpack

Узнайте, как включить Bootstrap в свой проект используя Webpack.

Установка

Установите bootstrap как модуль node с помощью npm.

Импорт JavaScript

Импортируйте файлы JavaScript бутстрапа добавлением этой строки в «точку входа» вашего приложения (обычно index.js или app.js):

import'bootstrap';

Или вы можете импортировать нужные плагины по отдельности:

import'bootstrap/js/dist/util';import'bootstrap/js/dist/alert';...

Bootstrap зависим от jQuery и Popper, они определяются как peerDependencies, это означает, что вам нужно будет обязательно добавить оба из них в ваш package.json используя npm install --save jquery popper.js.

Импорт стилей

Импорт прекомпилированных SASS

Для полного функционала и возможности настройки Bootstrap используйте исходные файлы при «сборке» вашего проекта.

Сперва создайте файл _custom.scss и переопределите значения встроенных переменных. Затем используйте свой основной файл sass для импорта пользовательских переменных, за которым следует Bootstrap:

@import"custom";@import"~bootstrap/scss/bootstrap";

Для компиляции удостоверьтесь, что установлены все требуемые загрузчики: sass-loader, postcss-loader с Autoprefixer. С минимальными настройками, ваша конфигурация вебпака должна включать подобное правило:

...{test:/\.(scss)$/,use:[{loader:'style-loader',// inject CSS to page},{loader:'css-loader',// translates CSS into CommonJS modules},{loader:'postcss-loader',// Run post css actionsoptions:{plugins:function(){// post css plugins, can be exported to postcss.config.jsreturn[require('precss'),require('autoprefixer')];}}},{loader:'sass-loader'// compiles SASS to CSS}]},...

Импорт компилированного СSS

Еще один путь – использование готового CSS добавлением этой строки в точку входа вашего проекта:

import'bootstrap/dist/css/bootstrap.min.css';

В этом случае вы можете использовать ваше правило css без каких-либо модификаций конфигурации вебпака за исключением того, что вам не нужен только sass-loaderstyle-loader и css-loader.

...module:{rules:[{test:/\.css$/,use:['style-loader','css-loader']}]}...