2015-10-02 18 views
45

Tôi khá mới phải nuốt chửng, và tôi làm theo hướng dẫn trong http://leveluptuts.com/tutorials/learning-gulp, tôi nhận được lỗi này:Gulp-uglify: ném er; // Unhandled 'lỗi' sự kiện

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) 

đây là mã của tôi:

var gulp = require('gulp') 
    uglify = require('gulp-uglify'); 

gulp.task('default', function() { 
    // body... 
    gulp.src('js/*.js') 
    .pipe(uglify()) 
    .pipe(gulp.dest('minjs')); 

}); 

và cây thư mục, chỉ cần đơn giản

-gulp 
    -js/ 
    -gulpfile.js 

thanks a lot

Trả lời

99

Tác vụ xấu của bạn có thể bị nghẹt thở trên một trong các tệp mà nó đang cố gắng xử lý. Xử lý lỗi và ghi đầu ra vào bảng điều khiển để bạn có thể xem tệp nào khiến nhiệm vụ thất bại.

gulp.task('scripts', ['clean'], function() { 
     return gulp.src('js/*.js') 
     .pipe(uglify().on('error', function(e){ 
      console.log(e); 
     })) 
     .pipe(gulp.dest('minjs')); 
    }); 

Khi bạn chạy nhiệm vụ ngụm bạn một lần nữa, bạn vẫn sẽ nhận được một lỗi, nhưng lần này, ngay phía trên cùng của kết quả, bạn sẽ thấy những tập tin và dòng số đó làm xấu đi là có xử lý rắc rối. Gỡ lỗi từ đó.

Có thể là lỗi cú pháp của nó? Hãy sửa nó và thử lại.

Có thể bạn đã có một tệp _reference.js kỳ lạ với các ký tự không mong muốn như những gì bạn thấy trong các dự án Visual Studio đôi khi? Loại trừ nó khỏi gulp.src và thử lại.

+0

Tôi đã có một lỗi tương tự với wiredep, nhưng đã không thể tìm ra lý do tại sao nó được retning thiis lỗi , ngay cả với mã được cung cấp của bạn. Tôi đã sử dụng một cái gì đó như thế này nhưng vẫn có một sự trở lại của "Đối số đầu tiên phải là một chuỗi, Buffer, ArrayBuffer, Array ..." gulp.task ('wiredep',() => { gulp.src ('app/styles /*.scss ') .pipe (wiredep ({ ignorePath: /^(\.\.\/)+/ }). on (' lỗi', function (e) { \t console.log (e); })) –

+0

Bất kỳ lời khuyên nào về việc xuất ra stacktrace chứa một chút dễ đọc hơn? 'JS_Parse_Error → stack:' và sau đó là tất cả '\ n \ nmessa \ nge ... 'và rất khó để có được nó ... –

+0

Viết dòng đăng nhập của bạn như thế này nếu bạn không muốn phá vỡ gulp ' console .log (e.message); trả về this.end(); ' –

0

Tôi gặp sự cố tương tự và gặp lỗi tương tự. Vấn đề là, một trong các tệp JS của tôi có @charset "UTF-8"; trong dòng đầu tiên. Vì vậy, cú pháp đã bị phá vỡ do biểu tượng @. Tôi đã xóa nó và nó hoạt động tốt.

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

Bạn cũng có thể sử dụng 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')); 
    }); 
5

tôi đã có lỗi tương tự. Vì vậy, tôi đã cố gắng để ra một lỗi cho giao diện điều khiển (nhờ bingo). Tôi nhận ra rằng vấn đề là gulp-uglify không muốn làm việc với ES6. Tôi đã thay đổi mã JS của mình thành ES2015 và thì đấy. Bạn cũng có thể sử dụng gulp-babel.

0

Tôi đã gặp phải sự cố tương tự và nó xảy ra với tệp js đã đưa ra các vấn đề. Vấn đề lớn nhất là tôi có 10 tệp js nhưng sau một chút vấn đề của tôi không được thêm ; vì điều này sẽ giảm thiểu mã của bạn, bạn không cần sử dụng ES6, bạn cần thêm ; vào cuối mã hoặc rút gọn công việc.

0

Trong trường hợp của tôi, có vẻ như nó không chấp nhận "mũi tên-cú pháp" chức năng (ví dụ data=>{ // do something; })

Các vấn đề liên quan