In meinem Projekt verwende ich babel, um auf ES5 zu übertragen. Ich verwende webpack, um alles zusammen zu bündeln. Es gibt mehrere Stellen, an denen babel eine Funktion am Anfang jeder Datei hinzufügt, um eine Funktion zu unterstützen (wie Restparameter here oder import
Anweisungen here).Reduzieren Sie transpilierte Code-Helfer mit babel und webpack
Zum Beispiel ziemlich jede Datei hat das an der Spitze:
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
Und mehrere Dateien haben dies:
var _toConsumableArray = function (arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } };
In meinem smaller project das ist keine große Sache, aber in Mein Projekt bei der Arbeit, ich mache das gleiche und ich bin mir sicher, dass ich mehr als ein paar Bytes rasieren konnte, indem ich einen Weg fand, all diese Polyfills an einem Ort zu haben und auf diese zu verweisen. Anstatt _interopRequire
in jeder Datei zu haben, die import
verwendet (was fast jede Datei ist), haben Sie sie an einem Ort und werden referenziert.
Gibt es eine Möglichkeit, dies zu tun?
Awesome, ich denke, das ist genau das, was ich brauche. Wenn ich das mache, wird meine 'dist'-Datei mit allen' core-js' aufgebläht. Gibt es eine Möglichkeit, Webpack zu konfigurieren, um Module zu entfernen, die nicht in meinem eigenen Code verwendet werden? – kentcdodds
Es ist auch nicht nur "Kern". Es ist auch "Helfer". – kentcdodds
Nicht sicher, aber vielleicht suchen Sie: https: // babeljs.io/docs/advanced/external-helpers/(persönlich habe ich es nicht versucht, da ich Core-js benutze, und vielleicht die meisten Helfer) –