Публикация пакета npm с ESM и TypeScript

За последние 2 года поддержка ESM в TypeScript, Node.js и браузерах сильно улучшилась. В этой статье я объясню мою современную настройку, которая является относительно простой по сравнению с тем, что нам приходилось делать раньше:
- она предназначена для пакетов, которые могут пренебречь обратной совместимостью. Настройка хорошо работает для меня некоторое время — начиная с TS 4.7 (24.05.2022)
- помогает то, что Node.js теперь поддерживает require(esm) — запрос библиотек ESM из модулей CommonJS
- я использую только
tsc, но упоминаю поддержку других инструментов в разделе "Компиляция TS с помощью других инструментов"
Обратная связь приветствуется: что вы делаете по-другому? Что может быть улучшено?
Пример пакета: в @rauschma/helpers используется настройка, описываемая в этой статье.


















