importmap-plus
importmap-rails, with vendoring that keeps its promises.
The same Importmap:: API, the same pins, the same import map. Plus minified downloads, jsDelivr's bundled builds, version locks, update by name, and pins that remember where they came from. Switch by changing one line in your Gemfile.
gem "importmap-plus"Same constants, same engine, same config/importmap.rb. An app already on importmap-rails changes one Gemfile line and nothing else.
pin --minify runs a vendored file through bun, esbuild or terser before it lands in vendor/javascript, and later updates keep minifying it.
--from esm.run vendors jsDelivr's one-file bundle, rewrites its imports to bare specifiers, and pins the dependencies it needs.
pin --lock holds a package at a version. update, pristine and pin leave it there until you unlock it or pass --force.
update luxon stimulus-use re-pins just those. update --all says explicitly what a bare update has always done.
The pin comment records the CDN, minification and lock, so an unpkg download never silently moves back to jspm on the next update.