ich genau das gleiche Problem vor mir hatte ... Wie Qantas in den Kommentaren erwähnt, Babel (ehemals 6to5) wird Syntax konvertieren, aber es wird nicht das Laden der Module oder polyfills tun.
Ich habe festgestellt, der einfachste Workflow ist browserify mit gulp. Dies sorgt für das Transpilieren, Hinzufügen von Polyfills, Bündelung, Verkleinerung und Generierung von Quellkarten in einem Treffer. Diese Frage hat ein schönes Beispiel: Gulp + browserify + 6to5 + source maps.
Diese Version fügt Minification und Polyfills hinzu. Ein Beispiel für Ihren Fall würde wie folgt aussehen:
let gulp = require('gulp');
let browserify = require('browserify');
let babelify = require('babelify');
let util = require('gulp-util');
let buffer = require('vinyl-buffer');
let source = require('vinyl-source-stream');
let uglify = require('gulp-uglify');
let sourcemaps = require('gulp-sourcemaps');
gulp.task('build:demo',() => {
browserify('./demo/app.js', { debug: true })
.add(require.resolve('babel-polyfill/dist/polyfill.min.js'))
.transform(babelify.configure({ presets: ['es2015', 'es2016', 'stage-0', 'stage-3'] }))
.bundle()
.on('error', util.log.bind(util, 'Browserify Error'))
.pipe(source('demo.js'))
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(uglify({ mangle: false }))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./demo'));
});
gulp.task('default', ['build:demo']);
Es ist wichtig, dass Uglify mangle auf false gesetzt hat; es scheint wirklich nicht gut mit dem transformierten Code zu spielen.
Wenn Sie nicht alle Abhängigkeiten installiert haben, können Sie eine package.json
Datei erstellen möchten, und stellen Sie sicher, dass folgende Pakete im dependencies Objekt definiert sind:
"devDependencies": {
"babel-polyfill": "^6.13.0",
"babel-preset-es2015": "^6.13.0",
"babel-preset-es2016": "^6.11.0",
"babel-preset-stage-0": "^6.5.0",
"babel-preset-stage-3": "^6.11.0",
"babelify": "^7.3.0",
"browserify": "^13.1.0",
"gulp": "^3.9.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^2.0.0",
"gulp-util": "^3.0.0",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0"
}
dieser meisten wird nicht funktionieren wenn mit -g
installiert, so betrachten Sie sich gewarnt: P
Dann führen Sie einfach npm install
alle Abhängigkeiten zu installieren, und gulp
die Standard-Task ausgeführt werden und alle Ihre Code transpile.
Ihre anderen Dateien sehen gut aus, Sie haben die richtige Idee, wenn Sie am Anfang jeder Datei importieren und Ihre Standardwerte exportieren :) Wenn Sie einige Beispiele für babelifizierte ES6 in freier Wildbahn haben möchten, habe ich eine couple of projects on GitHub, die helfen könnte.
Sie noch brauchen eine Möglichkeit, zu transformieren, die Module aus dem Browser heraus zu bekommen, 6to5 kombiniert die Dateien nicht zusammen. –
Wie kann ich das mit Schluck machen? :/ – nutzt
Sie können Bundler wie http://browserify.org/ oder http://esperantojs.org/ verwenden. –