Gulp-uglify : 抛出错误; // 未处理的 'error' 事件
Gulp-uglify : throw er; // Unhandled 'error' event
我是 gulp 的新手,我按照 http://leveluptuts.com/tutorials/learning-gulp 中的教程进行操作,我收到此错误:
events.js:141
throw er; // Unhandled 'error' event
^
Error
at new JS_Parse_Error (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:196:18)
at js_error (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:204:11)
at croak (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:680:9)
at token_error (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:688:9)
at unexpected (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:694:9)
at expr_atom (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1201:9)
at maybe_unary (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1363:19)
at expr_ops (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1398:24)
at maybe_conditional (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1403:20)
at maybe_assign (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1427:20)
这是我的代码:
var gulp = require('gulp')
uglify = require('gulp-uglify');
gulp.task('default', function() {
// body...
gulp.src('js/*.js')
.pipe(uglify())
.pipe(gulp.dest('minjs'));
});
和目录树,很简单
-gulp
-js/
-gulpfile.js
非常感谢
您的 uglify 任务可能在它试图处理的文件之一上阻塞。处理错误并将输出写入控制台,以便您可以查看导致任务失败的文件。
gulp.task('scripts', ['clean'], function () {
return gulp.src('js/*.js')
.pipe(uglify().on('error', function(e){
console.log(e);
}))
.pipe(gulp.dest('minjs'));
});
当你再次 运行 你的 gulp 任务时,你仍然会得到一个错误,但是这次,在输出的顶部,你会看到文件和行号 uglify处理有问题。从那里调试。
可能是语法错误?修复它并重试。
也许您有一个奇怪的 _reference.js 文件,其中包含您有时在 Visual Studio 项目中看到的意外字符?将其从 gulp.src 中排除并重试。
我遇到了同样的问题并且遇到了同样的错误。
问题是,我的一个 JS 文件有 @charset "UTF-8";在第一行。因此语法因 @
符号而中断。我删除了它并且效果很好。
{
SyntaxError: Unexpected character '@' at JS_Parse_Error.get
(eval at <anonymous> (C:\xampp\htdocs\catch\node_moles\uglify-js\tools\node.js:21:1),
<anonymous>:86:23) at formatError (util.js:649:15)
at formatValue (util.js:554:18)
at formatProperty (util.js:795:15)
at util.js:655:12
at Array.map (native)
at formatObject (util.js:654:15)
at formatValue (util.js:593:16)
at inspect (util.js:186:10)
at exports.format (util.js:72:24)
message: 'Unexpected character \'@\'',
filename: 'all.min.css', line: 1, col: 0, pos: 0 },
plugin: 'gulp-uglify',
....
....
}
您也可以使用 gulp-util
.
https://www.npmjs.com/package/gulp-util
var gutil = require('gulp-util');
gulp.task('scripts', ['clean'], function () {
return gulp.src('js/*.js')
.pipe(uglify().on('error',gutil.log))
.pipe(gulp.dest('minjs'));
});
我有同样的错误。所以我尝试向控制台输出错误(感谢 ). I realized that the problem is that gulp-uglify doesn't want to work with ES6. I changed my JS code to ES2015 and voila. You can also use gulp-babel.
我遇到了同样的问题,归结为 js 文件出现问题。最大的问题是我有 10 个 js 文件,但经过一点挖掘我的问题是没有添加 ;
因为这会缩小你的代码,所以你使用 ES6 并不重要,你需要在代码末尾添加 ;
否则缩小将不起作用。
就我而言,它似乎不接受 "arrow-syntax" 功能
(例如 data=>{ // do something; }
)
使用 gulp-uglify-es 代替 gulp-uglify。它适用于 es6
我是 gulp 的新手,我按照 http://leveluptuts.com/tutorials/learning-gulp 中的教程进行操作,我收到此错误:
events.js:141
throw er; // Unhandled 'error' event
^
Error
at new JS_Parse_Error (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:196:18)
at js_error (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:204:11)
at croak (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:680:9)
at token_error (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:688:9)
at unexpected (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:694:9)
at expr_atom (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1201:9)
at maybe_unary (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1363:19)
at expr_ops (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1398:24)
at maybe_conditional (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1403:20)
at maybe_assign (/home/kid/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1427:20)
这是我的代码:
var gulp = require('gulp')
uglify = require('gulp-uglify');
gulp.task('default', function() {
// body...
gulp.src('js/*.js')
.pipe(uglify())
.pipe(gulp.dest('minjs'));
});
和目录树,很简单
-gulp
-js/
-gulpfile.js
非常感谢
您的 uglify 任务可能在它试图处理的文件之一上阻塞。处理错误并将输出写入控制台,以便您可以查看导致任务失败的文件。
gulp.task('scripts', ['clean'], function () {
return gulp.src('js/*.js')
.pipe(uglify().on('error', function(e){
console.log(e);
}))
.pipe(gulp.dest('minjs'));
});
当你再次 运行 你的 gulp 任务时,你仍然会得到一个错误,但是这次,在输出的顶部,你会看到文件和行号 uglify处理有问题。从那里调试。
可能是语法错误?修复它并重试。
也许您有一个奇怪的 _reference.js 文件,其中包含您有时在 Visual Studio 项目中看到的意外字符?将其从 gulp.src 中排除并重试。
我遇到了同样的问题并且遇到了同样的错误。
问题是,我的一个 JS 文件有 @charset "UTF-8";在第一行。因此语法因 @
符号而中断。我删除了它并且效果很好。
{
SyntaxError: Unexpected character '@' at JS_Parse_Error.get
(eval at <anonymous> (C:\xampp\htdocs\catch\node_moles\uglify-js\tools\node.js:21:1),
<anonymous>:86:23) at formatError (util.js:649:15)
at formatValue (util.js:554:18)
at formatProperty (util.js:795:15)
at util.js:655:12
at Array.map (native)
at formatObject (util.js:654:15)
at formatValue (util.js:593:16)
at inspect (util.js:186:10)
at exports.format (util.js:72:24)
message: 'Unexpected character \'@\'',
filename: 'all.min.css', line: 1, col: 0, pos: 0 },
plugin: 'gulp-uglify',
....
....
}
您也可以使用 gulp-util
.
https://www.npmjs.com/package/gulp-util
var gutil = require('gulp-util');
gulp.task('scripts', ['clean'], function () {
return gulp.src('js/*.js')
.pipe(uglify().on('error',gutil.log))
.pipe(gulp.dest('minjs'));
});
我有同样的错误。所以我尝试向控制台输出错误(感谢
我遇到了同样的问题,归结为 js 文件出现问题。最大的问题是我有 10 个 js 文件,但经过一点挖掘我的问题是没有添加 ;
因为这会缩小你的代码,所以你使用 ES6 并不重要,你需要在代码末尾添加 ;
否则缩小将不起作用。
就我而言,它似乎不接受 "arrow-syntax" 功能
(例如 data=>{ // do something; }
)
使用 gulp-uglify-es 代替 gulp-uglify。它适用于 es6