Встряхивание дерева - это процесс, применяемый упаковщиками для удаления неиспользуемого кода библиотеки.
Это означает, что в качестве библиотеки lib вам необходимо экспортировать версию (esm), которую можно использовать в дереве, потому что вы неНе знаю, какой код ваши потребители не будут использовать.
Если ваш код будет использоваться в обоих envs, узлах и браузерах, вам нужно будет экспортировать cjs
(commonJS) версию для узла & esm
(ES-модули) версия для использования в браузере.
С помощью машинописного текста вы можете добиться этого, запустив tsc
дважды один раз с двумя отдельными конфигурациями:
// tsconfig.browser.json
{
"compilerOptions": {
"module": "esnext",
"outDir": "./dist/esm/",
...
}
}
// tsconfig.node.json
{
"compilerOptions": {
"module": "commonjs",
"outDir": "./dist/cjs/",
...
}
}
Затем укажите конфигурациюза каждый прогон.
tsc -c ./tsconfig.browser.json
tsc -c ./tsconfig.node.json
В ваш package.json
добавьте 2 записи.
{
...
module: "dist/esm/index.js",
main: "dist/cjs.index.js"
...
}