Pregunta 1
Encuentro que hay muchas duplicaciones innecesarias en el resultado del paquete (salida) (paquete web), para ser específicos, todos son ayudantes (como classCheck
, objectSpread
debido al complemento de propagación de objetos).
Entonces, quiero reducir las duplicaciones. Si es una biblioteca, seguro, usaré el complemento transform-runtime (consulte runtime-corejs3
) para hacer esto. Pero ahora esta es una aplicación , entonces, ¿cuál es la forma correcta de hacer esto?
Por lo tanto, me estoy confundiendo porque el transfrom-runtime
complemento se recomienda para la biblioteca (y es para toda la reducción core-js
, es decir , regenerator
y los ayudantes). Pero aquí solo quiero reducir las cooperadoras duplicaciones, no en otras duplicaciones debido a que se ha hecho por babel/env
.
Entonces, la pregunta que quiero hacer / discutir es si es necesario reducir las helpers
duplicaciones en una aplicación , en caso afirmativo, ¿y cómo?
Pregunta 2
La otra pregunta es, core-js/modules/es.promise.js
y core-js-pure/modules/es.promise.js
son exactamente el mismo código, ¿la principal diferencia es que el primero tiene contaminación global? Si es así, ¿por qué core-js
no usa (importar directamente) core-js-pure
para polyfill y luego lo agrega a global? En mi opinión, esto reducirá en gran medida las duplicaciones porque ahora las bibliotecas usan transform-runtime
(finalmente core-js-pure
) pero las aplicaciones usan preset-env
(finalmente core-js
), no hay códigos compartidos / compartibles entre aplicaciones y bibliotecas, ¿verdad?
fuente
webpack
? [ webpack.js.org/guides/tree-shaking/]Respuestas:
@babel/plugin-transform-runtime
: agrega polyfills sin asociarlos al ámbito global.@babel/preset-env
conuseBuiltins: "usage"
: agrega polyfills al alcance global.@babel/preset-env
conuseBuiltIns: false (default)
: No agregue polyfills.babel.config.js:
fuente