Webpack

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

Смотреть на GitHub

Установка

Установите 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 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']
      }
    ]
  }
  ...