ほぼ雑記的メモ
といっても全面に見えているところには導入していません。CMSの管理画面など。これについては色々理由があるんですが、長くなりそうなんでまた別のエントリでかきます。
Reactについては完全な初心者だったわけですがその大部分はChatGPTへの質問だけで事足りました。
ChatGPTは、疑問に思うこと、これはどうするの?みたいなところを懇切丁寧に教えてもらえるので大助かりです。技術的な疑問点に対しても、具体的かつ丁寧に回答が得られたため、大変助かりました。Google検索なら習得にもっと時間がかかっていたでしょう。そして、これを機会に完全にSprocketsを削除しました。アセットパイプラインともおさらばです。Sprocketの機能は大別すると
ということになるかと思います。いくつかのJSを結合して配信するのはサーバへのリクエスト回数を減らすというのには助かりますが、現代はesbuildなどでバンドル化してくれます。主要なJSはesbuildなどでビルドすること前提に配布されているので、そちらの機能で十分です。minifyもesbuildでできますからこれも不要。ダイジェスト化(ファイル名にハッシュ値をつけて配置してくれるあれ)も強制的にキャッシュを破棄するのにはいいのですが、本ブログはそもそも自身の管理するサーバにある上に規模も小さいので、別にハッシュ値つけんでもええやろという結論に至りましたあと、そもそもお気楽にRailsに導入できるgemがどんどん更新がなくなり、Sprockets使って配信するよりpublicの下においたほうが導入が簡単というのもありました。
またファイル名にダイジェストがつくのはそもそもjavascriptのmoduleと相性が悪く、importmapを使わないとモジュール名が毎回変わってしまうわけで非常に管理がしにくいです。なのでtype="module"を使用して直接読み込むようにしました。
ということでJSやCSSなどのアセットはesbuildでバンドルするかpublicの直下に直置きするようにしました。今んとここれで十分です。ありがとうSprockets、そしてこんにちはReact