Gulp-uglify: throw er; / / необработанное событие " ошибка
Я довольно Новичок, чтобы глотать, и я следую учебники в 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
спасибо большое
6 ответов:
ваша задача 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 иногда? Исключите его из глотка.src и повторите попытку.
У меня была такая же ошибка. Поэтому я попытался вывести ошибку на консоль (спасибо лото). Я понял, что проблема в том, что gulp-uglify не хочет работать с ES6. Я изменил свой код JS на ES2015 и вуаля. Вы также можете использовать залпом-Бабель.
Также вы можете использовать
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')); });
в моем случае, кажется, он не принимает функцию "стрелка-синтаксис (например,
data=>{ // do something; }
)
у меня была та же проблема, и я получал ту же ошибку. Проблема была в том, что один из моих файлов 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', .... .... }
у меня была та же проблема, и она дошла до JS-файла, который выдавал проблемы. Самой большой проблемой было то, что у меня было 10 JS файлов, но после небольшого копания моя проблема не добавляла
;
поскольку это уменьшит ваш код, не имеет значения, что вы используете ES6, вам нужно добавить;
в конце вашего кода или сокращение не будет работать.