2015-06-23 21 views
12

Ho ricevuto questo errore. Il gulp in esecuzione ieri ha funzionato perfettamente, ma stamattina (ha cambiato il codice NO) e ho ricevuto questo errore.gulp-uglify events.js non gestito errore 'evento'

$ gulp 
[08:54:10] Using gulpfile C:\Source\Source2\bunny-meadows\gulpfile.js 
[08:54:10] Starting 'scripts'... 
[08:54:10] 'scripts' errored after 11 ms 
[08:54:10] TypeError: listener must be a function 
    at TypeError (<anonymous>) 
    at DestroyableTransform.addListener (events.js:130:11) 
    at DestroyableTransform.Readable.on (C:\Source\Source2\bunny-meadows\node_mo 
dules\gulp-uglify\node_modules\through2\node_modules\readable-stream\lib\_stream 
_readable.js:729:33) 
    at Gulp.<anonymous> (C:\Source\Source2\bunny-meadows\gulpfile.js:37:10) 
    at module.exports (C:\Source\Source2\bunny-meadows\node_modules\gulp\node_mo 
dules\orchestrator\lib\runTask.js:34:7) 
    at Gulp.Orchestrator._runTask (C:\Source\Source2\bunny-meadows\node_modules\ 
gulp\node_modules\orchestrator\index.js:273:3) 
    at Gulp.Orchestrator._runStep (C:\Source\Source2\bunny-meadows\node_modules\ 
gulp\node_modules\orchestrator\index.js:214:10) 
    at Gulp.Orchestrator.start (C:\Source\Source2\bunny-meadows\node_modules\gul 
p\node_modules\orchestrator\index.js:134:8) 
    at c:\Users\hschillig.SCDL\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js 
:129:20 
    at process._tickCallback (node.js:419:13) 

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error 
    at new JS_Parse_Error (C:\Source\Source2\bunny-meadows\node_modules\gulp-ugl 
ify\node_modules\uglify-js\lib\parse.js:196:18) 
    at js_error (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\node_m 
odules\uglify-js\lib\parse.js:204:11) 
    at croak (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\node_modu 
les\uglify-js\lib\parse.js:675:9) 
    at token_error (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\nod 
e_modules\uglify-js\lib\parse.js:683:9) 
    at expect_token (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\no 
de_modules\uglify-js\lib\parse.js:696:9) 
    at expect (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\node_mod 
ules\uglify-js\lib\parse.js:699:36) 
    at function_ (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\node_ 
modules\uglify-js\lib\parse.js:959:9) 
    at expr_atom (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\node_ 
modules\uglify-js\lib\parse.js:1188:24) 
    at maybe_unary (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\nod 
e_modules\uglify-js\lib\parse.js:1358:19) 
    at expr_ops (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\node_m 
odules\uglify-js\lib\parse.js:1393:24) 
    at maybe_conditional (C:\Source\Source2\bunny-meadows\node_modules\gulp-ugli 
fy\node_modules\uglify-js\lib\parse.js:1398:20) 
    at maybe_assign (C:\Source\Source2\bunny-meadows\node_modules\gulp-uglify\no 
de_modules\uglify-js\lib\parse.js:1422:20) 

miei gulpfile.js assomiglia a questo:

var gulp = require('gulp'); 

// Include Our Plugins 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename'); 
var livereload = require('gulp-livereload'); 

var paths = { 
    // using framework version of jquery 
    scripts: [ 
     'public/assets/js/jquery.min.js', 
     'public/assets/plugins/mustachejs/mustache.js', 
     'public/assets/js/modernizr.js', 
     'public/assets/js/bootstrap.min.js', 
     'public/assets/js/placeholders.min.js', 
     'public/assets/plugins/bootstrap-wysiwyg/bootstrap3-wysihtml5.all.min.js', 
     'public/assets/plugins/bootstrap-wysiwyg/bootstrap3-wysihtml5.min.js', 
     'public/assets/plugins/responsiveslides/responsiveslides.min.js', 
     'public/assets/plugins/bxslider/jquery.bxslider.min.js', 
     'public/assets/plugins/magnific-popup/magnific-popup.js', 
     'public/assets/js/jquery.autocomplete.min.js', 
     'public/assets/js/plugins/additems.js', 
     'public/assets/js/plugins/farm/farm.js', 
     'public/assets/js/plugins/plusminus.js', 
     'public/assets/js/core.js' 
    ] 
}; 

// Concatenate & Minify JS 
gulp.task('scripts', function() { 
    return gulp.src(paths.scripts) 
     .pipe(concat('all.js')) 
     .pipe(gulp.dest('public/assets/js')) 
     .pipe(rename('all.min.js')) 
     .pipe(uglify()) 
     .on('error') 
     .pipe(gulp.dest('public/assets/js')) 
     .pipe(livereload()); 
}); 

// Watch Files For Changes 
gulp.task('watch', function() { 
    livereload.listen(); 
    gulp.watch(paths.scripts, ['scripts']); 
}); 

// Default Task 
gulp.task('default', ['scripts', 'watch']); 

Anche in questo caso non ho cambiato nulla, quindi non capisco perché tutto ad un tratto questa mattina che non vuole lavorare.

risposta

28

A seguito di questo ha aiutato:

  1. Installare Gulp-util
  2. Importare il Gulp-util utilizzando la seguente dichiarazione: var gutil = require('gulp-util');
  3. Infine, quando si è uglifying il codice, collegare il gestore degli errori come questo: .pipe(uglify().on('error', gutil.log))

Sono stato in grado di eseguire il debug. Era un errore di sintassi in uno dei file minificati che stavo includendo.

+0

Davvero bello, grazie! –

+0

fonte: https://github.com/terinjokes/gulp-uglify/issues/50 – whoan

+1

Scrivi il gestore degli errori in questo modo se non vuoi rompere il gocciolamento 'console.log (e.message); ritorna this.end(); ' –

0

Il modo migliore per comprendere gli errori in una pipeline di Gulp consiste nell'utilizzare un modulo di supporto, ad esempio pump. Come spiegato nella documentazione di Gulp Why Use Pump? è possibile ottenere gli errori corretti avvolgendo la pipeline.

gulp.task('scripts', function(cb) { 
    pump([ 
     gulp.src(paths.scripts), 
     concat('all.js'), 
     gulp.dest('public/assets/js'), 
     rename('all.min.js'), 
     uglify(), 
     gulp.dest('public/assets/js'), 
     livereload() 
    ], cb); 
}); 

Allegare un gestore di errori per la parte UglifyJS del gasdotto non vi dico sugli errori negli altri, e non segnalerà correttamente un errore di sistema dei task in esecuzione del Gulp.