cjs и esm ?
А в чем сложность?
Я создаю 2 tsconfig один с Module esnext другой с cjs, в целом имею на выходе 2 dist'a , но из за того что в рутовом package.json можно выбрать только либо type module либо commonjs после попытки запустить код через node, (как это должно быть в продакшене) оба варианта не работают вместе
1. Зачем два tsconfig, если можно просто в конфиге сборщика поменять тип сборки (либо в командной строке) либо указать оба 2. Использовать поле exports, в котором явно указать путь до require (cjs) и imports (esm) Но без сборщика, на голой ноде, разумеется, будет работать только один вариант, который указан в type
А сборщик это к примеру esbuild?
А поле exports нужно будет в рутовом package.json указать?
Если это не библиотека - можно вообще ничего не указывать.
я правильно понимаю, сборщик в итоге скомпилирует к примеру файл index.ts в index.js и index.mjs (ну или в зависимости от такого какие я параметры передам) и уже потом можно будет запускать через node с указанием нужного типа?
Если человек использует модули - у него импортируется файл, который ты указал в module, иначе в main
Обсуждают сегодня