development

Gulp-uglify : 던지기 어;

big-blog 2020. 12. 10. 20:51
반응형

Gulp-uglify : 던지기 어; // 처리되지 않은 '오류'이벤트


나는 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가 처리하는 데 문제가있는 파일과 줄 번호가 표시됩니다. 거기에서 디버그하십시오.

구문 오류일까요? 문제를 해결하고 다시 시도하십시오.

Visual Studio 프로젝트에서 가끔 볼 수있는 것과 같은 예상치 못한 문자가 포함 된 이상한 _reference.js 파일이있을 수 있습니다. gulp.src에서 제외하고 다시 시도하십시오.


나는 같은 오류가 있었다. 그래서 콘솔에 출력 (덕분에 오류를 시도 빙고 ). 문제는 gulp-uglify가 ES6와 함께 작동하기를 원하지 않는다는 것입니다. JS 코드를 ES2015와 짜잔으로 변경했습니다. gulp-babel을 사용할 수도 있습니다 .


또한 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; })


I had the same issue and was getting the same error. The problem was, one of my JS files had @charset "UTF-8"; in the first line. So the syntax was breaking due to @ symbol. I removed it and it worked well.

{
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',
....
....
}

I had the same issue and it came down to a js file that was giving out issues. The biggest issue was I had 10 js files but after a little digging my issue was not adding ; since this will minify your code it does not matter you use ES6 you need to add ; at the end of your code or minifying won't work.


use gulp-uglify-es instead gulp-uglify. It works with es6

참고URL : https://stackoverflow.com/questions/32911223/gulp-uglify-throw-er-unhandled-error-event

반응형