Webpacker → Importmap / ESBuild / Bun / Vite
Rails 6 までは Webpacker が標準の JavaScript 管理方式だったが、以下の理由から Rails 7 で非推奨となった。
Rails 7 以降は JavaScript 管理を選択制に変更した。
ブラウザの ES Modules を利用し、ビルドなしで JS を読み込む方式。
特徴
コード例
<script type="module">
import * as Turbo from "https://cdn.skypack.dev/@hotwired/turbo
";
Turbo.start();
</script>
軽量で高速なビルドツールで、Rails が公式に推奨していた方式。
特徴
Rails 7.1 以降、bun-rails により統合が進んでいる。
特徴
vite_ruby / vite_rails によって Rails と統合。
モダンフロントエンドとの相性が極めて良い。
特徴
アセット例
<script type="module" src="/vite-dev/main.js"></script>
| 規模 / 用途 | 推奨方式 |
|---|---|
| 小規模・管理画面 | Importmap |
| 少しだけ JS が必要 | ESBuild |
| 最新高速環境を使いたい | Bun |
| Vue / React / Svelte を使う | ViteRails |