Нужно ли объединять transform-runtime и preset-env в приложении? - PullRequest
8 голосов
/ 14 апреля 2020

Вопрос 1

Я обнаружил, что в результате (вывода) пакета (webpack) есть много ненужных дубликатов, которые можно указать c, все они являются помощниками (например, classCheck, * 1004). * (из-за плагина для распространения объектов).

Итак, я хочу уменьшить дубликаты. Если это библиотека, конечно, я буду использовать плагин transform-runtime (см. runtime-corejs3), чтобы сделать это Но теперь это приложение , так, как правильно это сделать?

Поэтому я запутался, потому что для библиотеки рекомендуется плагин *1013* для библиотеки (и для всего сокращения. Т.е. core-js, regenerator и помощников). Но здесь я просто хочу уменьшить дубликаты помощник , а не дублирования других, потому что что было сделано с помощью babel/env.

Итак, вот вопрос, который я хочу задать / обсудить: необходимо ли уменьшить helpers дублирования в приложении , если да и как?

Вопрос 2

Другой вопрос, core-js/modules/es.promise.js и core-js-pure/modules/es.promise.js - это один и тот же код, главное отличие в том, что первый имеет глобальное загрязнение? Если это так, почему core-js не использует (напрямую импортирует) core-js-pure для полифилла, а затем добавляет его в глобальный? IMO, это значительно уменьшит дубликаты, потому что в настоящее время библиотеки используют transform-runtime (наконец core-js-pure), но приложения используют preset-env (наконец core-js), нет общих / общих кодов между приложениями и библиотеками, верно?

1 Ответ

0 голосов
/ 16 апреля 2020

@babel/plugin-transform-runtime: добавить полифилы, не привязывая их к глобальной области.

@babel/preset-env с useBuiltins: "usage": добавить полифилы в глобальную область.

@babel/preset-env с useBuiltIns: false (default): Не добавляйте полизаполнения.

Так что @babel/plugin-transform-runtime рекомендуется для библиотеки и приложения для добавления полизаполнений.

babel.config. js:

module.exports = {
  presets: ['@babel/preset-env'],
  plugins: [
    '@babel/transform-runtime',
  ],
};
...