Javascript Browserify和Babel-gulp任务

Javascript Browserify和Babel-gulp任务,javascript,gulp,browserify,babeljs,Javascript,Gulp,Browserify,Babeljs,我想在JavaScript中同时使用Browserify和Babel。为此,我创建了一个吞咽任务 gulp.task('babel', function() { return gulp.src('_babel/*.js') .pipe(browserify({ insertGlobals : true })) .pipe(babel({ presets: ['es2015'] })) .pipe(gulp.dest('_dev/js'));

我想在JavaScript中同时使用Browserify和Babel。为此,我创建了一个吞咽任务

gulp.task('babel', function() {
    return gulp.src('_babel/*.js')
        .pipe(browserify({ insertGlobals : true }))
        .pipe(babel({ presets: ['es2015'] }))
        .pipe(gulp.dest('_dev/js'));
});
不幸的是,当我想在我的代码中使用
import
时,我得到了一个错误:

ParseError: 'import' and 'export' may only appear at the top level
我的主js文件非常简单:

import 'directives/toggleClass';

我猜这是因为Babel(它是
使用严格的
加法),但我能做什么呢?

Babel为Call维护一个官方转换,如果使用Babel和browserify,应该尽可能使用它

直接放弃使用babel,将babelify作为browserify的转换插件。配置browserify的方法有很多,但在
包.json中指定config可能是最简单的方法

"browserify": { 
  "transform": [["babelify", { "presets": ["es2015"] }]]
}
你的吞咽任务将被简化

gulp.task('babel', function() {
    return gulp.src('_babel/*.js')
        .pipe(browserify({ insertGlobals : true }))
        .pipe(gulp.dest('_dev/js'));
});

Browserify还公开了以编程方式执行此操作的方法,这样您就可以从gulp任务内部配置bundler(删除包配置,尽管使用包很好),检查他们的文档和实验,我以前做过,但使用gulp已经很久了(在这里使用gulp只是一个您不需要的复杂问题,但我希望您在构建管道的其他地方使用它,这可能会更有帮助)。

更改顺序(在浏览之前放置babel),有什么帮助吗?没有,我试过这个,删除
babel
也没用。没有答案,但你试过使用吗?你需要制作一个
。babelrc
文件,Babel6Browserify可以与普通JS模块一起使用。你正在使用ES6模块。在使用Browserify之前,你需要将你的ES6模块传输到commonJS。