2015-10-02 12 views
45

i ziemlich neu ist zu schlucken, und ich folge Tutorials in http://leveluptuts.com/tutorials/learning-gulp, bekomme ich diesen Fehler:Gulp-Uglify: werfen äh; // Nicht behandelte 'Fehler' Ereignis

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) 

hier ist mein Code:

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

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

}); 

und die Baum des Verzeichnisses, nur einfache

-gulp 
    -js/ 
    -gulpfile.js 

vielen dank

Antwort

99

Ihre Uglify-Aufgabe erstickt wahrscheinlich an einer der Dateien, die sie zu verarbeiten versucht. Behandeln Sie den Fehler, und schreiben Sie die Ausgabe in die Konsole, damit Sie sehen können, welche Datei den Fehler verursacht hat.

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

Wenn Sie Ihren Schluck Aufgabe erneut ausführen, werden Sie noch eine Fehlermeldung erhalten, aber dieses Mal, nach rechts in Richtung der Spitze der Ausgabe finden Sie die Datei und die Zeilennummer sehen, die Probleme bei der Bearbeitung uglify wird müssen. Debug von dort.

Vielleicht ist es ein Syntaxfehler? Repariere es und versuche es erneut.

Vielleicht haben Sie eine seltsame Datei _reference.js mit unerwarteten Zeichen, wie Sie sie manchmal in Visual Studio-Projekten sehen? Schließen Sie es aus der Datei gulp.src aus und versuchen Sie es erneut.

+0

Ich hatte einen ähnlichen Fehler mit wiredep, war aber nicht in der Lage, um herauszufinden, warum es retning thiis Fehler akzeptiert , sogar mit Ihrem bereitgestellten Code. Ich benutzte so etwas, aber immer noch eine Rückkehr von "Erstes Argument muss eine Zeichenfolge sein, Puffer, ArrayBuffer, Array ..." gulp.task ('wiredep',() => { gulp.src ('app/styles /*.scss ') .pipe (wiredep ({ ignorePath: /^(\.\.\/)+/ }). on (' Fehler ', Funktion (e) { \t Konsole.log (e); })) –

+0

Irgendwelche Ratschläge zur Ausgabe des enthaltenen Stacktrace ein wenig lesbarer? 'JS_Parse_Error → stack:' und dann ist es alles '\ n \ nmessa \ nge ... 'und sehr schwer zu bekommen ... –

+0

Schreiben Sie Ihre Logzeile so, wenn Sie nicht schlucken wollen ' Konsole .log (e.message); return this.end(); ' –

0

Ich hatte das gleiche Problem und bekam den gleichen Fehler. Das Problem war, eine meiner JS-Dateien hatte @charset "UTF-8"; in der ersten Zeile. Also die Syntax war aufgrund @ Symbol zu brechen. Ich habe es entfernt und es hat gut funktioniert.

{ 
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

Sie können auch gulp-util verwenden.

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

hatte ich den gleichen Fehler. Also habe ich versucht einen Fehler auf der Konsole auszugeben (Danke an bingo). Ich erkannte, dass das Problem ist, dass Schluck-Uglify nicht mit ES6 arbeiten will. Ich habe meinen JS-Code in ES2015 geändert und voila. Sie können auch gulp-babel verwenden.

0

Ich hatte das gleiche Problem und es kam zu einer js-Datei, die Probleme gab. Das größte Problem war, dass ich 10 js Dateien hatte, aber nach ein wenig graben mein Problem war nicht ; hinzufügen, da dies Ihren Code minimieren wird, ist es egal, Sie verwenden ES6 müssen Sie ; am Ende Ihres Codes hinzufügen oder verkleinern wird nicht Arbeit.

0

In meinem Fall scheint es nicht „Pfeil-Syntax“ -Funktion (zB data=>{ // do something; })