メインコンテンツにスキップ ドキュメント ナビゲーションにスキップ
in English

Webpack とバンドラー

Webpack またはその他のバンドラーを使用して Bootstrap をプロジェクトに含める方法を学びます。

ブートストラップのインストール

npm を使用して、Node.js モジュールとしてブートストラップをインストールします。

JavaScript のインポート

次の行をアプリのエントリ ポイント (通常はまたは)に追加して、 Bootstrap の JavaScriptをインポートします。index.jsapp.js

// You can specify which plugins you need
import { Tooltip, Toast, Popover } from 'bootstrap';

または、必要なプラグインがいくつかだけの場合は、必要に応じてプラグインを個別にインポートできます。

import Alert from 'bootstrap/js/dist/alert';
...

Bootstrap は、プロパティで指定されたPopperに依存しpeerDependenciesます。これは、必ずpackage.jsonusingに追加する必要があることを意味しますnpm install @popperjs/core

スタイルのインポート

プリコンパイル済み Sass のインポート

Bootstrap の可能性を最大限に活用し、必要に応じてカスタマイズするには、ソース ファイルをプロジェクトのバンドル プロセスの一部として使用します。

まず、独自の変数を作成し、それを使用して組み込みのカスタム変数_custom.scssをオーバーライドします。次に、メインの Sass ファイルを使用してカスタム変数をインポートし、続いて Bootstrap をインポートします。

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

Bootstrap をコンパイルするには、必要なローダー ( sass-loaderpostcss-loader with Autoprefixer )をインストールして使用していることを確認してください。最小限のセットアップで、webpack 構成に次のルールまたは類似のルールを含める必要があります。

// ...
{
  test: /\.(scss)$/,
  use: [{
    // inject CSS to page
    loader: 'style-loader'
  }, {
    // translates CSS into CommonJS modules
    loader: 'css-loader'
  }, {
    // Run postcss actions
    loader: 'postcss-loader',
    options: {
      // `postcssOptions` is needed for postcss 8.x;
      // if you use postcss 7.x skip the key
      postcssOptions: {
        // postcss plugins, can be exported to postcss.config.js
        plugins: function () {
          return [
            require('autoprefixer')
          ];
        }
      }
    }
  }, {
    // compiles Sass to CSS
    loader: 'sass-loader'
  }]
}
// ...

コンパイル済み CSS のインポート

または、次の行をプロジェクトのエントリ ポイントに追加するだけで、Bootstrap のすぐに使用できる CSS を使用できます。

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

この場合、 style-loadercss-loaderだけcssを必要としないことを除いて、webpack 構成に特別な変更を加えることなく、既存のルールを使用できます。sass-loader

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