Miałem dokładnie ten sam problem przed sobą ... Jak wspomniał Qantas w komentarzach, Babel (dawniej 6to5) konwertuje składnię, ale nie będzie ładować modułów ani polyfills.
Znalazłem najłatwiejszy przepływ pracy przy użyciu browserify z gulp. To zajmuje się transpozycją, dodawaniem polifills, wiązaniem, minifikacją i generowaniem map źródłowych za jednym trafieniem. To pytanie ma całkiem ładny przykład: Gulp + browserify + 6to5 + source maps.
Ta wersja dodaje minifikację i różne produkty. Przykład dla Twojego przypadku będzie wyglądał następująco:
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']);
Ważne jest, aby uglify miało mangle ustawione na false; to naprawdę nie wydaje się być miłym z przekształconym kodem.
Jeśli nie masz zainstalowane wszystkie zależności, można utworzyć plik package.json
, i upewnić się, że następujące pakiety zostały zdefiniowane w obiekcie dependencies:
"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"
}
Większość z nich nie będzie działać jeśli zainstalowany -g
, więc uważa się ostrzeżony: P
Następnie wystarczy uruchomić npm install
zainstalować wszystkie zależności i gulp
aby uruchomić zadanie domyślnej i transpile wszystkich kodzie.
Twoje pozostałe pliki wyglądają dobrze, masz dobry pomysł z importowaniem na początku każdego pliku i eksportowaniem ustawień domyślnych :) Jeśli chcesz mieć przykłady babelifikowanych ES6 w środowisku naturalnym, mam couple of projects on GitHub, które mogą ci pomóc.
trzeba jeszcze sposób, aby uzyskać moduły z przeglądarki, 6to5 nie łączy plików razem. –
Jak mogę to zrobić z haustem? :/ – nutzt
Możesz używać programów typu "bundgers" takich jak http://browserify.org/ lub http://esperantojs.org/. –