Precisamos combinar o tempo de transformação e o ambiente predefinido em um aplicativo?

8

Questão 1

Acho que existem muitas duplicações desnecessárias no resultado do pacote (webpack) (saída), para ser específico, todos eles são os auxiliares (como classCheck, objectSpread(devido ao plug-in de propagação de objetos).

Então, eu quero reduzir as duplicações. Se for uma biblioteca, com certeza, usarei o plug-in transform-runtime (consulte runtime-corejs3) para fazer isso. Mas agora que esse é um aplicativo , qual é a maneira correta de fazer isso?

Portanto, estou ficando confuso porque o transfrom-runtimeplug-in é recomendado para a biblioteca (e é para toda a redução. Ou seja core-js, regeneratore para os auxiliares). Mas aqui eu simplesmente querem reduzir os auxiliares duplicações, não outros duplicações porque isso foi feito por babel/env.

Portanto, aqui a pergunta que quero perguntar / discutir é que é necessário reduzir as helpersduplicações em um aplicativo , se sim, e como?

Questão 2

A outra pergunta é, core-js/modules/es.promise.jse core-js-pure/modules/es.promise.jssão exatamente o mesmo código, a principal diferença é que o primeiro tem poluição global? Se sim, por core-jsque não usa (importa diretamente) core-js-purepara o polyfill e depois o adiciona ao global? Na IMO, isso reduzirá bastante as duplicações, porque no momento as bibliotecas usam transform-runtime(finalmente core-js-pure), mas os aplicativos usam preset-env(finalmente core-js), não há códigos compartilhados / compartilháveis ​​entre aplicativos e bibliotecas, certo?

SmallTown NE
fonte
não está claro o que você deseja alcançar no final
Leonardo
@ Leonardo "é necessário reduzir as duplicações dos auxiliares em um aplicativo, se sim, e como?"
SmallTown NE
A trepidação de árvores está ativada webpack? [ webpack.js.org/guides/tree-shaking/]
Varun Goel em
@VarunGoel Eu acho que não se trata de tremor de árvores, porque se trata de duplicações, não usadas / não utilizadas
SmallTown NE

Respostas:

0

@babel/plugin-transform-runtime: adicione polyfills sem anexá-los ao escopo global.

@babel/preset-envcom useBuiltins: "usage": adicione polyfills ao escopo global.

@babel/preset-envcom useBuiltIns: false (default): Não adicione polyfills.

Portanto, @babel/plugin-transform-runtimeé recomendado que a biblioteca e o aplicativo adicionem polyfills.

babel.config.js:

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