Müssen wir die Transformationslaufzeit und die Voreinstellungsumgebung in einer Anwendung kombinieren?

8

Frage 1

Ich finde , dass es viele unnötigen Verdoppelungen in dem (webpack) Bündel (Ausgang) Ergebnis ist, um genau zu sein, sie alle Helfer sind (wie classCheck, objectSpread(aufgrund der Objekt-Spread - Plugin).

Also möchte ich die Duplikate reduzieren. Wenn es sich um eine Bibliothek handelt, verwende ich dazu das Transform-Runtime-Plugin (siehe runtime-corejs3). Aber jetzt ist dies eine Anwendung . Wie kann man das richtig machen?

Dafür bin ich verwirrt , weil das transfrom-runtimePlugin wird empfohlen für Bibliothek (und ist für die gesamte Reduktion. Dh core-js, regeneratorund die Helfer). Aber hier möchte ich nur die Helfer- Duplikate reduzieren , nicht andere Duplikate, weil dies von getan wurde babel/env.

Hier ist die Frage, die ich stellen / diskutieren möchte, ob es notwendig ist, die helpersDuplikate in einer Anwendung zu reduzieren , wenn ja, und wie?

Frage 2

Die andere Frage ist, core-js/modules/es.promise.jsund core-js-pure/modules/es.promise.jssind genau der gleiche Code, der Hauptunterschied ist nur, dass der erstere globale Verschmutzung hat? Wenn ja, warum core-jswird core-js-purePolyfill nicht verwendet (direkt importiert) und dann zu global hinzugefügt? IMO, dies wird die Duplikate erheblich reduzieren , da derzeit die Bibliotheken transform-runtime(endlich core-js-pure), aber Apps preset-env(endlich core-js) verwenden, es keine gemeinsam genutzten Codes zwischen Apps und Bibliotheken gibt, oder?

SmallTown NE
quelle
Es ist nicht klar, was Sie am Ende erreichen wollen
Leonardo
@Leonardo "Ist es notwendig, die Duplikate der Helfer in einer Anwendung zu reduzieren, wenn ja, und wie?"
SmallTown NE
Ist das Schütteln von Bäumen aktiviert webpack? [ webpack.js.org/guides/tree-shaking/]
Varun Goel
@VarunGoel Ich denke, es geht nicht um Baumschütteln, weil es um Duplikate geht, nicht verwendet / nicht verwendet
SmallTown NE

Antworten:

0

@babel/plugin-transform-runtime: Fügen Sie Polyfills hinzu, ohne sie dem globalen Bereich zuzuordnen.

@babel/preset-envmit useBuiltins: "usage": Hinzufügen von Polyfills zum globalen Bereich.

@babel/preset-envmit useBuiltIns: false (default): Fügen Sie keine Polyfills hinzu.

Es @babel/plugin-transform-runtimewird daher sowohl für die Bibliothek als auch für die Anwendung empfohlen , Polyfills hinzuzufügen.

babel.config.js:

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