Если не использовать TypeScript, который при tsc-трансформации в js пропишет нужные пути в import при помощи transform и карты путей/alias, то в браузерах в importmap следует указывать путь не только для сторонних библиотек, но и под каждый импортируемый через alias файл! Спецификация importmap не предполагает glob-масок.
При этом eslint, jest и webpack конфигурируются по-своему, получаем дублирование кода. Нужда в конвертерах eslint-typescript, eslint-webpack...
По importmaps верно резюмируют:
Все что было нужно - это js колбек для импортов, начинающихся не с точки и не со слеша, который дал бы неограниченную свободу при resolve модулей. Который был бы очень простым в реализации. Но эти чуваки решили 5 лет потратить на разработку куцей и бессмысленной спецификации карт импортов. ПС:. Например, я хочу отсылать все подобные импорты в корень сервера, как есть, где сервер, имея доступ к файловой системе воспользуется механизмом node.js найдет нужный модуль и вернет его по требованию.
Что остаётся делать для esm? Использовать importmaps для внешних библиотек (VueJS, MomentJS, ...) и паковать, при необходимости переписывая пути, при подготовке релиза с помощью сборщиков и плагинов к ним. Либо писать под NodeJS свою библиотеку/скрипт, которая занимается переписыванием путей вне сборщиков.
Trying to solve node variant with subpath patterns:
Also thinking about fix-esm-import-path