Viteでの使用(Bootstrap and Vite) v5.2.0新設
Viteを使用してBootstrapのCSSとJavaScriptをプロジェクトに組み込みバンドルする方法の公式ガイド。
※"v5.3.0"での変更はv5.3.0-alpha版、v5.3.0-beta版での変更も含みます。

※Viteについては、Vite日本語版を参照。
セットアップ(Setup)
Bootstrapを使用してViteプロジェクトをゼロから構築しているため、実際に始める前に、いくつかの前提条件と事前の手順がある。このガイドでは、既にNode.jsがインストールされており、ある程度ターミナル(コマンドプロンプト)に精通している必要がある。
-
プロジェクトフォルダを作成し、npmを設定。
my-project
フォルダを作成し、npmを-y
引数で初期化して、すべてのインタラクティブな質問を回避する。実行コマンド
$ mkdir my-project && cd my-project $ npm init -y
-
Viteをインストール。webpackガイドとは異なり、ここでは構築ツールの依存関係は1つしかない。Viteは、言語トランスフォーマー(Sassなど)を検出すると、それらを自動的にインストールする。
--save-dev
を使用して、この依存関係が開発用であり、本番用ではないことを通知する。実行コマンド
$ npm i --save-dev vite
-
Bootstrapをインストール。これで、Bootstrapがインストールできる。ドロップダウン、ポップオーバー、ツールチップはPopperに依存しているため、Popper(
@popperjs/core
)もインストールする。これらのコンポーネントを使用する予定がない場合は、ここでPopperを省略しても可。実行コマンド
$ npm i --save bootstrap @popperjs/core
-
追加の依存関係をインストール。ViteとBootstrapに加えて、BootstrapのCSSを適切にインポートしてバンドルするには、別の依存関係(Sass)が必要。
実行コマンド
$ npm i --save-dev sass
必要なすべての依存関係がインストールとセットアップされれば、プロジェクトファイルの作成とBootstrapのインポートに取り掛かることができる。
プロジェクト構造(Project structure)
my-project
フォルダを作成し、npmを初期化した。次に、src
フォルダと dist
フォルダも作成して、プロジェクト構造を完成させる。my-project
から以下を実行するか、以下に示すフォルダとファイル構造を手動で作成する。
実行コマンド$ mkdir {src,src/js,src/scss}
$ touch src/index.html src/js/main.js src/scss/styles.scss vite.config.js
完了すると、プロジェクト全体は以下のようになる。
my-project/
├── src/
│ ├── js/
│ │ └── main.js
│ └── scss/
│ │ └── styles.scss
│ └── index.html
├── package-lock.json
├── package.json
└── vite.config.js
この時点で、すべてが適切な場所にあるが、vite.config.js
をまだ入力していないため、Viteは機能しない。
Viteを構成する(Configure Vite)
依存関係がインストールされ、プロジェクトフォルダでコーディングを開始できるようになったら、Viteを構成して、プロジェクトをローカルで実行できる。
-
エディタで
vite.config.js
を開く。ファイルの中は空白なので、サーバーを起動するために定型的な設定を追加する必要がある。構成のこの部分は、ViteにプロジェクトのJavaScriptを探す場所と、開発サーバーの動作(ホットリロードでsrc
フォルダから取得する)を指示する。vite.config.js
の設定例const path = require('path') export default { root: path.resolve(__dirname, 'src'), server: { port: 8080, hot: true } }
-
src/index.html
ファイルを作成。これは、後の手順で追加するバンドルされたCSSとJSを利用するためにwebpackがブラウザにロードするHTMLページである。src/index.html
の設定例<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Vite付きBootstrap</title> </head> <body> <div class="container py-4 px-3 mx-auto"> <h1>Hello, Bootstrap and Vite!</h1> <button class="btn btn-primary">Primary button</button> </div> <script type="module" src="js/main.js"></script> </body> </html>
上記では、BootstrapのCSSがViteによって読み込まれるタイミングが確認できるように、
div class="container"
と<button>
を使用したBootstrapのスタイルを少しだけ入れている。 -
ここで、Viteを実行するためのnpmスクリプトが必要。
package.json
を開き、以下に示すstart
スクリプトを追加(すでにtestスクリプトが用意されているはず)。このスクリプトを使用して、ローカルVite開発サーバーを起動する。package.json
の設定例{ // ... "scripts": { "start": "vite", "test": "echo \"Error: no test specified\" && exit 1" }, // ... }
-
そして最後に、Viteを起動。ターミナルの
my-project
フォルダから、新しく追加されたnpmスクリプトを実行:実行コマンド
$ npm start
このガイドの次が最後となる項目では、Viteローダーをセットアップし、BootstrapのCSSとJavaScriptをすべてインポートする。
Bootstrapのインポート(Import Bootstrap)
-
vite.config.js
でBootstrapSassインポートを設定。これで構成ファイルが完成し、以下のスニペットと一致するはず。ここでの唯一の新しい部分はresolve
セクション―これを使用して、node_modules
内のソースファイルにエイリアスを追加し、インポートを可能な限り単純にする。vite.config.js
の設定例const path = require('path') export default { root: path.resolve(__dirname, 'src'), resolve: { alias: { '~bootstrap': path.resolve(__dirname, 'node_modules/bootstrap'), } }, server: { port: 8080, hot: true } }
-
それから、BootstrapのCSSをインポートする。以下を
src/scss/styles.scss
に追加して、BootstrapのすべてのソースSassをインポート。src/scss/styles.scss
の設定例// BootstrapのCSSをすべてインポート @import "~bootstrap/scss/bootstrap";
必要に応じて、スタイルシートを個別にインポートすることもできる。詳細については、Sassカスタマイズのインポートの項目に記載。
-
次に、CSSをロードし、BootstrapのJavaScriptをインポート。以下を
src/js/main.js
に追加して、CSSをロードし、BootstrapのすべてのJSをインポート。PopperはBootstrapを介して自動的にインポートされる。src/js/main.js
の設定例全てをインポート
// カスタムCSSをインポート import '../scss/styles.scss' // BootstrapのJSをすべてインポート import * as bootstrap from 'bootstrap'
バンドルサイズを抑えるために、必要に応じてJavaScriptプラグインを個別にインポートすることもできる。
個別にインポート
import Alert from 'bootstrap/js/dist/alert' // または、必要なプラグインを指定: import { Tooltip, Toast, Popover } from 'bootstrap'
Bootstrapのプラグインの使用方法の詳細については、JavaScriptの解説に記載。
-
これで完了!🎉BootstrapのソースSassとJSが完全に読み込まれると、ローカル開発サーバーは次のようになる。
これで、使用するBootstrapコンポーネントの追加が始められる。追加のカスタムSassを組み込み、BootstrapのCSSとJSの必要な部分のみをインポートして構築を最適化する方法については、完全なViteサンプルプロジェクトを必ずチェックして下さい。
ここで何か間違いがあったり、情報が古くなっていたら、GitHubのIssuesを開いてご指摘下さい。トラブルシューティングのサポートが必要なら、GitHubで検索するか、ディスカッションを始めて下さい。