Webpack
Узнайте, как включить Bootstrap в свой проект с помощью Webpack 3.
Установка
Установите bootstrap как модуль node с помощью npm.
Импорт JavaScript
Импортируйте файлы JavaScript бутстрапа добавлением этой строки в «точку входа» вашего приложения (обычно index.js
или app.js
):
import 'bootstrap';
Или вы можете импортировать нужные плагины по отдельности:
import 'bootstrap/js/dist/util';
import 'bootstrap/js/dist/dropdown';
...
Bootstrap зависим от jQuery и Popper, они определяются как peerDependencies
, это означает, что вам нужно будет обязательно добавить оба из них в ваш package.json
используя npm install --save jquery popper.js
.
Заметьте, что если вы импортируете плагины по отдельности, вы должны установить exports-loader
Импорт стилей
Импорт прекомпилированных 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 actions
options: {
plugins: function () { // post css plugins, can be exported to postcss.config.js
return [
require('precss'),
require('autoprefixer')
];
}
}
}, {
loader: 'sass-loader' // compiles SASS to CSS
}]
},
...
Импорт компилированного СSS
Еще один путь – использование готового CSS добавлением этой строки в точку входа вашего проекта:
import 'bootstrap/dist/css/bootstrap.min.css';
В этом случае вы можете использовать ваше правило css
без каких-либо модификаций конфигурации вебпака за исключением того, что вам не нужен только sass-loader
style-loader и css-loader.
...
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
...