Oto moje proste zadanie skompilowania mojego kodu ES6 do jednego pliku ES5. Używam klas i modułów (import
, export
) w ES6.Używanie Babel z jednym plikiem wyjściowym i modułami ES6
gulp.src(paths.scripts)
.pipe(sourcemaps.init())
.pipe(babel({
presets: ['es2015']
}))
.pipe(concat('all.js'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./www/js'));
Jednak ponieważ Babel kompiluje ES6 import
dyrektyw do require
poleceń i require
będzie próbował zwrócić plik, pliki życzenie niepowodzeniem, ponieważ cały kod ES5 jest concatted w jednym pliku, all.js.
Wynikiem jest pakiet błędów "Błąd: Nie można znaleźć modułu". Jak mogę skompilować moduły, które działają, gdy wszystkie są zapisane w jednym pliku?
Wygląda na to, że to już nie działa (patrz także [ta odpowiedź] (http://stackoverflow.com/questions/31873235/gulp-concat-and-require-path/33280669#33280669)) bez czegoś takiego jak Browserify . Ponieważ jednak wydaje się, że zamierzasz uruchomić kod w przeglądarce, powinieneś to sprawdzić :-) – robertklep