Ich verwende Babel, um ES6 zu ES5 zu transponieren, und es funktioniert großartig. Das einzige Problem ist, dass, sobald transpiled jedes Modul diese Zeilen Duplikate:babel/6to5 - duplizierter Code beim Exportieren von Modulen
var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc && desc.writable) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _inherits = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
Da meine Anwendung mehr und mehr Module Definition von Klassen haben wird, kann ich mir nicht vorstellen, so viel Raum Taillierung, nur weil dieser wiederholten Code.
Gibt es eine Möglichkeit, Babel zu sagen, sie nicht in jedes Modul aufzunehmen, damit wir sie nur einmal hinzufügen können?
Ich bin mit großem Schluck und meine Config ist:
var gulp = require('gulp');
var concat = require('gulp-concat');
var babel = require('gulp-babel');
gulp.task('default', function() {
return gulp.src('src/**/*.es6')
.pipe(babel({ playground: true, experimental: true, modules: 'amd', moduleIds: true }))
.pipe(concat('tmp/src.js'))
.pipe(gulp.dest('dist'));
});
Vielen Dank für Ihre Hilfe!
Ich bin unklar dazu: es aus der Dokumentation scheint, dass diese Option alle Kern-js fügt hinzu, die, es sei denn, Sie benötigen Core- js, würde definitiv den Vorteil der Rasur Bytes durch Vermeidung von Helfer Wiederholung besiegen, oder? Gibt es keine Möglichkeit, die Helfer nicht zu kopieren, ohne Core-js hinzuzufügen? – davidtheclark