Комментарии 6
С ноды 20.не_помню_минор (в 22 тоже) есть экспериментальная опция загрузки esm через require. А так согласен, что гемор полный. Особенно когда тебе на выходе еще и бинарник получить надо. Всякие pkg начинают глючить.
Ага, действительно, в 20ке появилось с версии 20.17
Имхо, но статья через чур перегружена. Есть шпаргалка, где какой формат лучше использовать?
Спасибо, было интересно!
Пилю свою либу, сделал пока методом проб и ошибок и скорей всего не правильно, но вроде работет :) Надо будет пройтись по вашим шаблонам и еще проверить импорт в другой либе.
Мне все это видится так, как наверное и вам. Любая либа всегда должна поставляться как минимум в форме Pure ESM ESNext. Потому что клиенту может понадобиться скомпилировать ее уже под свою конкретную платформу и важно иметь максимально оригинальный и стандартный код. Мы конечно тоже можем компилировать под все возможные варианты платформ и типов модулей, но это уже дополнительный плюшки.
Очень полезный инструмент для проверки того, все ли потребители вашего пакета смогут им воспользоваться без проблем: https://github.com/arethetypeswrong/arethetypeswrong.github.io
Создаём современные npm-пакеты и преодолеваем трудности совместимости ESM и CJS