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-runtime
plug-in é recomendado para a biblioteca (e é para toda a redução. Ou seja core-js
, regenerator
e 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 helpers
duplicações em um aplicativo , se sim, e como?
Questão 2
A outra pergunta é, core-js/modules/es.promise.js
e core-js-pure/modules/es.promise.js
são exatamente o mesmo código, a principal diferença é que o primeiro tem poluição global? Se sim, por core-js
que não usa (importa diretamente) core-js-pure
para 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?
fonte
webpack
? [ webpack.js.org/guides/tree-shaking/]Respostas:
@babel/plugin-transform-runtime
: adicione polyfills sem anexá-los ao escopo global.@babel/preset-env
comuseBuiltins: "usage"
: adicione polyfills ao escopo global.@babel/preset-env
comuseBuiltIns: false (default)
: Não adicione polyfills.babel.config.js:
fonte