importmapを早くもやめる

結局数週間で esbuild+jsbundlingに再移行です。

1. 使えない npm パッケージが多数ある。結局力技で入れるか諦めてCDNとか。最終的にはpublicに配置。

importmapは制限が多すぎます。設計思想としては悪くないのですが時代には早すぎる感じです。このあたりモジュールを読み込んでいくやり方がNode.js と ES Modules(ECMAScript Modules)でのモジュール読み込みの違いが混乱の元凶だと思うんですよね。Node はもともと CommonJS (CJS) という形式で始まりそして普及したけど規格としては独自規格(つまり仕様)。よって筋としては規格であるESMに行くべきなんですがこれに対応していないモジュールが多すぎる。

2. 全てのjavascriptのURLをユーザに知らしめる必要がある。

importmapは<script type="importmap"></script>の中にjson形式で必要とするjsの全ての場所を記す必要があります。ところがimportmap-railsではこのjsonが一つしか用意されていないので、一つのサイトで必要とする全てのjsの位置をユーザに知らしめる必要があります。これは管理者しか使わないjsなども公開する必要があり、あまりよろしくないと思われます

3. minifyとかしにくい

minifyしなくてもいいといえばいいんですが、やはり最低限の難読化はしておきたいところです。結局minifyしようとおもったらesbuildみたいなものの出番になるわけで、ならば最初からesbuild使ってたほうが楽ですよね。というわけで、現時点ではesbuild(的なやつ)+jsbundlingが最強だと思います。これもこれでよくわからないところがあるのだけれど。

IE という異物が消え去った今現れた新たな異物。これがまっさらになるのはいつの日か・・