usebuiltins the support skips removed regenerator presets polyfilling polyfill plugin now has been javascript gulp browserify ecmascript-6 babeljs

javascript - the - Babel polyfill y trago



the polyfill option has been removed the babel runtime module now skips polyfilling by default (1)

browserify(entryPoint, { debug: watch }) .add("babel/polyfill")

creará un paquete con dos puntos de entrada, con entryPoint ejecutándose primero. Eso significa que el polyfill se cargará después de que se cargue la aplicación. O lo haces

require(''babel/polyfill'');

dentro de su archivo entryPoint , o ponerlos en el orden correcto

browserify(["babel/polyfill", entryPoint], { debug: watch })

No puedo cargar correctamente babel/polyfill con trago. En mi caso, el método Array.from no está definido. Sin embargo, si intenta cargar browser-polyfill.js con gulp .add(require.resolve("babel/polyfill")) "only one instance of babel/polyfill is allowed" error "only one instance of babel/polyfill is allowed" . El código fuente es correcto porque lo he probado con babel browser-polyfill.js .

Código fuente:

//Lib.js export default class Lib { constructor() { var src = [1, 2, 3]; this.dst = Array.from(src); } foo() { return this.dst; } } //main.js import Lib from "./Lib"; var l = new Lib(); console.log(l.foo()); //Uncaught TypeError: Array.from is not a function

Gulpfile:

var gulp = require(''gulp''); var sourcemaps = require(''gulp-sourcemaps''); var source = require(''vinyl-source-stream''); var buffer = require(''vinyl-buffer''); var browserify = require(''browserify''); var watchify = require(''watchify''); var babelify = require(''babelify''); var uglify = require(''gulp-uglify''); var entryPoint = "./js/main.js"; function compile(watch) { var bundler; function debug() { bundler.bundle() .on(''error'', function(err) { console.error(err); this.emit(''end''); }) .pipe(source(''main.debug.js'')) .pipe(buffer()) .pipe(sourcemaps.init({ loadMaps: true })) .pipe(sourcemaps.write(''./'')) .pipe(gulp.dest(''./bin'')); } function release() { bundler.bundle() .on(''error'', function(err) { console.error(err); this.emit(''end''); }) .pipe(source(''main.release.js'')) .pipe(buffer()) .pipe(uglify()) .pipe(gulp.dest(''./bin'')); } if(watch) { bundler = watchify(browserify(entryPoint, { debug: watch }) .add(require.resolve("babel/polyfill")) .transform(babelify)); bundler.on(''update'', function() { console.log(''Sources has changed. Rebuilding...''); debug(); }); debug(); } else { bundler = browserify(entryPoint, { debug: watch }) .add(require.resolve("babel/polyfill")) .transform(babelify); release(); } } gulp.task(''release'', function() { return compile(false); }); gulp.task(''debug'', function() { return compile(true); }); gulp.task(''default'', [''debug'']);