Как подготовить lib, чтобы быть совместимым с потрясающим деревом? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть плагин, созданный с помощью Typescript, и мне нужно активировать Tree-shaking в этот плагин . Есть ли способ включить эту функцию без веб-пакета?

1 Ответ

1 голос
/ 06 ноября 2019

Встряхивание дерева - это процесс, применяемый упаковщиками для удаления неиспользуемого кода библиотеки.

Это означает, что в качестве библиотеки 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"
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...