gulp-babel 将 ES6 更改为 ES5 要求并非未定义



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,然后得到错误:未捕获的引用错误: 未定义要求。我尝试配置 .babelrc

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

但仍然收到错误未定义定义。那么如何让ES6转换ES5可以在浏览器中正常呢?

尝试将 .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"。

最新更新