2

gulpfile.js

gulp.task('es6', function() {
    gulp.src('libs/es6/*.js')
    .pipe(babel())
    .pipe(gulp.dest('libs/js'))
        .pipe(concat('all.js'))
        .pipe(gulp.dest('libs/dist'))
        .pipe(rename('all.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('libs/dist'));
});

.babelrc

{
  "presets": ["es2015"]
}

使用 gulp-babel 将 es6 转换为 es5 然后得到错误:未捕获的 ReferenceError:未定义要求。我尝试配置 .babelrc

{
  "presets": ["es2015"],
  "plugins": ["babel-plugin-transform-es2015-modules-amd"]
}

但仍然得到错误定义未定义。那么如何让 es6 转换 es5 可以在浏览器中正常使用呢?

4

1 回答 1

0

尝试将 .babelrc 文件改回:

{
  "presets": ["es2015"]
}

现在将您的 gulpfile.js 更改为:

gulp.task('es6', function() {
    gulp.src('libs/es6/*.js')
    .pipe(babel({
        plugins: 'babel-plugin-transform-es2015-modules-amd'
    }))
    .pipe(gulp.dest('libs/js'))
        .pipe(concat('all.js'))
        .pipe(gulp.dest('libs/dist'))
        .pipe(rename('all.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('libs/dist'));
});

我刚刚遇到了类似的问题,这对我有用。唯一的区别是我的插件被称为“transform-es2015-modules-amd”。

于 2017-10-10T19:38:19.410 回答