[Gulp打包问题] GulpUglifyError: unable to minify JavaScript

本文介绍了解决 Gulp 打包时出现的 Uglify 错误的方法,包括通过 gulp-util 模块定位错误及使用 gulp-babel 和 babel-preset-es2015 转换 ES6/ES7 语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前使用gulp打包的时候一直很顺利,可今天突然给我报了 GulpUglifyError: unable to minify JavaScript ,一万只XXX~带过

    gulp.task('script', function() {
        gulp.src(['public/**/*.js', 'public/lib/**/*.js'])
            .pipe(uglify())
            .pipe('dist/js')
    })

报了该错误主要是因为javascirpt语法问题,在es5环境里使用了es6、es7语法,不出问题才怪。 此时你要每个文件去看是不可能的。

解决方法一

检查哪一个文件中的哪一行有问题 安装 gulp-util 模块 用于打印日志

    npm install --save-dev gulp-util
    gulp.task('script', function() {
        gulp.src(['public/**/*.js', 'public/lib/**/*.js'])
            .pipe(uglify())
            .on('error', function(err) {
                gutil.log(gutil.colors.red('[Error]'), err.toString());
            })
            .pipe('dist/js')
    })

打印报错内容

ADMINs-Mac-pro:frontend admin$ gulp script
[11:45:54] Using gulpfile ~/workspace/frontend/gulpfile.js
[11:45:54] Starting 'script'...
[11:45:54] Finished 'script' after 14 ms
[11:45:55] [Error] GulpUglifyError: unable to minify JavaScript
Caused by: SyntaxError: Unexpected token: punc (,)
File: /Users/admin/workspace/frontend/public/js/basic.js
Line: 247

这样就可以精准的逐个排查文件了。

解决方法二

继续方法一 安装 babel 模块
gulp-babel 、babel-preset-es2015

npm install --save-dev gulp-babel babel-preset-es2015
     gulp.task('script', function() {
        gulp.src(['public/**/*.js', 'public/lib/**/*.js'])
            .pipe(babel({
                presets: ['es2015'] // es5检查机制
            }))
            .pipe(uglify())
            .on('error', function(err) {
                gutil.log(gutil.colors.red('[Error]'), err.toString());
            })
            .pipe('dist/js')
    })

到了这一步,你就已经完成解决 gulp-uglify 压缩JavaScript 不兼容 es5 语法的问题了。

转载于:https://my.oschina.net/johnsken/blog/1796169

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值