イントロダクション
現在のRailsは、プロジェクト作成時のオプションで「—api」と入力することで使える「APIモード」として、サーバーサイドのみで使われることが多い(実際に私の勤めてきた企業の多くはそうであった)が、Railsの作者であるDHHこと、デイヴィッド・ハイネマイヤー・ハンソン氏は、RailsがAPIのみの用途とされることを推奨はしていないようだ。
なぜなら、今回のRails7のアップデートによって、Railsが大きく進化した箇所は「JavaScript」に関することばかりなのだから。
もっとも、大きなプロジェクトをこなす上では、やはりフロントエンドとバックエンドは切り離されることが多いだろう。
だが、小規模開発において、フロントエンドを含めた全てがRails標準のアセットパイプラインのみで完結するのならば、それは個人開発者にとって嬉しいニュースなのではなかろうか。
実際に今私が開発している小規模なWebサービスの構築は、全てがRailsに依存している。
その中でどうしても苦しくなってくるのはJavaScript関連の実装だ。
そして、それが今回のRails7へのアップデートで改善されるのかもしれない。
import maps(インポート マップス)
「import-map-rails」というGemがRails7には最初から入っているといった感じです。
GitHub: https://github.com/rails/importmap-rails
これが実装されることにより、Webpack, Yarn, npmは不要となり、Railsが最初から用意しているもの(アセットパイプライン)だけでJavaScriptの実行ができるようになります。
{
"imports": {
"http": "https://deno.land/std/http/server.ts"
}
}
import { serve } from 'http'
const body = new TextEncoer().encode('Hello World\n')
for await (const req of serve(':8080')) {
req.respond({ body })
}
このように、設定したキー名だけでインポートできるようになります。