Viteでの使用(Bootstrap and Vite) v5.2.0新設 v5.3.6更新
Viteを使用してBootstrapのCSSとJavaScriptをプロジェクトに組み込みバンドルする方法の公式ガイド。
※"v5.0.0"での変更はv5.0.0-alpha版、v5.0.0-beta版での変更も含みます。
※"v5.3.0"での変更はv5.3.0-alpha版での変更も含みます。
Viteとは?(What is Vite?)v5.3.4追加
Vite(Vite日本語版)は、スピードとシンプルさを追求したモダンなフロントエンドビルドツール。特に最新のJavaScriptフレームワークに対して、効率的で合理的な開発体験を提供する。
セットアップ(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 フォルダ、スタイルシート、JavaScriptファイルを作成し、プロジェクト構造を完成させる。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)v5.3.6更新
依存関係がインストールされ、プロジェクトフォルダでコーディングを開始できるようになったら、Viteを構成して、プロジェクトをローカルで実行できる。
-
エディタで
vite.config.jsを開く。ファイルの中は空白なので、サーバーを起動するために定型的な設定を追加する必要がある。構成のこの部分は、ViteにプロジェクトのJavaScriptを探す場所と、開発サーバーの動作(ホットリロードでsrcフォルダから取得する)を指示する。vite.config.jsの設定例 緑背景が5.3.3以降の変更箇所import { resolve } from 'path' export default { root: resolve(__dirname, 'src'), build: { outDir: '../dist' }, server: { port: 8080 }, // オプション: Sassの非推奨の警告を削除。以下の注意を参照。 css: { preprocessorOptions: { scss: { silenceDeprecations: [ 'import', 'mixed-decls', 'color-functions', 'global-builtin', ], }, }, }, }注意:Dart Sassの最新バージョンでソースSassファイルをコンパイルすると、Sassの非推奨に関する警告が表示される。これはBootstrapのコンパイルや使用を妨げるものではない。Bootstrapでは長期的な修正に取り組んでいるが、それまでの間はこれらの非推奨の警告は無視してもよい。v5.3.6追加
-
src/index.htmlファイルを作成。これは、後の手順で追加するバンドルされたCSSとJSを利用するためにwebpackがブラウザにロードするHTMLページである。src/index.htmlの設定例 緑背景が5.3.0での変更箇所<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Vite付きBootstrap</title> <script type="module" src="js/main.js"></script> </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> </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)v5.3.0更新
-
BootstrapのCSSをインポートする。以下を
src/scss/styles.scssに追加して、BootstrapのすべてのソースSassをインポート。src/scss/styles.scssの設定例 緑背景が5.3.0での変更箇所// 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サンプルプロジェクトを必ずチェックしてください。
【変更履歴】
- 【v5.3.0】
vite.config.jsの設定:build:の追加、serverからhot: trueの設定を削除src/index.htmlの設定:js/main.jsの設定を</body>の前から</head>の前に移動- Bootstrapのインポートでの
vite.config.jsの設定を削除 src/scss/styles.scssの設定:@import "~bootstrap/scss/bootstrap";⇒@import "bootstrap/scss/bootstrap";
- 【v5.3.3】
vite.config.jsの設定:const path = require()⇒import { resolve } fromroot: path.resolve()⇒root: resolve()
- 【v5.3.6】
vite.config.jsの設定:Sassの非推奨に関する警告を削除する方法を追加
ここで何か間違いがあったり、情報が古くなっていたら、GitHubのIssuesを開いてご指摘ください。トラブルシューティングのサポートが必要なら、GitHubで検索するか、ディスカッションを始めてください。