首页 > 其他分享 >gulp-babel没有将ES6转为ES5,

gulp-babel没有将ES6转为ES5,

时间:2023-02-09 09:44:31浏览次数:39  
标签:ES6 ES5 pipe src babel gulp

使用gulp-babel转换ES6到ES5,然后用uglify对代码压缩,gulpfile中的代码片段:

gulp.task('default', () =>     gulp.src('src/app.js')         .pipe(babel())         .pipe(gulp.dest('dist')) );

看到下面的报错

GulpUglifyError: unable to minify JavaScript
SyntaxError: Unexpected token: keyword «const»
或 SyntaxError: Unexpected token: punc «(»

这个报错是因为uglify不支持ES6语法,但是我上面的gulp任务中是先用babel对ES6语法转换之后再uglify,说明babel没有正常工作。打开dist文件夹查看生成的文件中的代码,确实ES6语法没有被转成ES5。奇怪的是项目之前一直正常。

我的项目之前是在根目录下放了一个.babelrc文件,里面的内容是:

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": "> 0.5%, not dead"
            }
        ]
    ],
    "comments": false,
    "ignore": []
}

研究了很久,发现问题应该还是出在presets没有生效上,最后按gulp-balel官方说明文档的例子解决:

gulp.task('default', () =>
    gulp.src('src/app.js')
        .pipe(babel({
            presets: ['@babel/env']
        }))
        .pipe(gulp.dest('dist'))
);

 

标签:ES6,ES5,pipe,src,babel,gulp
From: https://www.cnblogs.com/johnjackson/p/17104148.html

相关文章