Rails 7 importmap-rails

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 いらなくなるのは大きい。

参考