Rails 7 から導入された importmap-rails についてまとめる。
importmap-rails とは
JavaScriptモジュールをブラウザから直接インポートできるようになる。
従来の Webpack などの JavaScript Builder に変わる選択肢。これにより Webpack, Yarn, npm, 各種ツールチェーンなどが不要となり、必要なものはアセットパイプラインのみ。つまり Node.js 環境がいらない。
import map は Chrome 89+ からネイティブサポートが始まった。
導入
Rails 7 以降では自動的に導入される。
手動で導入する場合は
$ ./bin/bundle add importmap-rails $ ./bin/rails importmap:install
config/importmap.rb
でマッピングの設定をし、javascript_importmap_tags
で呼び出す。
<%= javascript_importmap_tags %>
注意点
- JavaScript のコンパイルをしないので、JSX を処理できない。React などとの相性 ❌
- import map では HTTP/2 を使うが、Heroku が HTTP/2 をサポートしていない。Heroku との相性 ❌
所感
そんなにJS駆使した開発しないので、うまく使えれば便利かもしれない。Node.js いらなくなるのは大きい。