Webpack

Aprenda como integrar o Bootstrap ao seu projeto, usando Webpack 3.

Instalação do Bootstrap

Instale o Bootstrap como um módulo do Node.js, usando npm.

Inportação do JavaScript

Importe o JavaScript Bootstrap, adicionando esta linha ao entry point do seu app (index.js ou app.js, normalmente):

import 'bootstrap';

Opcionalmente, você também pode importar plugins individualmente, sempre que necessário:

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

Bootstrap depende do jQuery e Popper, os quais são definidos como peerDependencies, significando que você terá que se certificar de adicionar os dois ao seu package.json, usando npm install --save jquery popper.js.

Importar estilos

Importação do Sass pré-compilado

Para aproveitar todo potencial e personalizar o Bootstrap do jeito que quiser, use os arquivos fontes como parte do seu bundling process.

Primeiro, crie seu próprio _custom.scss e use-o para sobrescrever as variáveis integradas de customização. Assim, use o arquivo Sass principal para importar suas variáveis personalizadas e depois o Bootstrap, em si:

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

Para o Bootstrap compilar, certifique-se de instalar e usar os loaders necessários, que são: sass-loader e postcss-loader com Autoprefixer. Nas mínimas configurações, seu Webpack deve ter esta regra ou algo parecido:

  ...
  {
    test: /\.(scss)$/,
    use: [{
      loader: 'style-loader', // injeta CSS na página
    }, {
      loader: 'css-loader', // traduz CSS em módulos commonJS
    }, {
      loader: 'postcss-loader', // Executa tarefas do postcss
      options: {
        plugins: function () { // plugins postcss, podem ser exportados para o postcss.config.js
          return [
            require('precss'),
            require('autoprefixer')
          ];
        }
      }
    }, {
      loader: 'sass-loader' // compila Sass em CSS
    }]
  },
  ...

Importação do CSS compilado

Opcionalmente, você pode usar o CSS Bootstrap pronto para uso, simplesmente, adicionando esta linha ao entry point do seu projeto:

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

Neste caso, você pode usar suas regras CSS sem nenhuma modificação especial nas configurações webpack. Assim, você não precisa do sass-loader, apenas do style-loader e css-loader.

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