2015-10-02 14 views
45

私は飲み込むためにかなり新たなんだ、と私はhttp://leveluptuts.com/tutorials/learning-gulpのチュートリアルに従ってください、私はこのエラーを取得する:ここGulp-uglify:throw er; //未処理の「エラー」イベント

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 

おかげでたくさん

答えて

99

あなたのuglifyタスクは、処理しようとしているファイルの1つでおそらく窒息しています。エラーを処理してコンソールに出力を書き込むと、どのファイルがタスクを失敗させるかを知ることができます。あなたがもう一度あなたの一気タスクを実行すると

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

は、あなたはまだエラーを取得しますが、今回は、右の出力の上部に向かって、あなたはトラブル処理をしているuglifyファイルと行番号が表示されます。そこからデバッグしてください。

多分それは構文エラーですか?それを修正して、やり直してください。

Visual Studioプロジェクトで表示されるような予期しない文字を含む奇妙な_reference.jsファイルがあることがありますか?それをgulp.srcから除外して再試行してください。

+0

を受け入れていないようですあなたの提供されたコードでも。私はこのようなものを使用しましたが、最初の引数は文字列、バッファ、ArrayBuffer、配列でなければなりません " (エラー)、関数(e){ \tコンソールで、次のように入力します。log(e); })) –

+0

含まれているスタックトレースを少し読みやすくするためのアドバイスはありますか? 'JS_Parse_Error→stack:'そしてそれは '\ n \ nmessa \ nge ... 'なので、それを得るのは非常に難しいです... –

+0

ガルプを破りたくない場合は、このようにログラインを書きます ' console .log(e.message); return this.end(); ' –

0

私は同じ問題があり、同じエラーが発生していました。 問題は、私のJSファイルの1つに@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', 
.... 
.... 
} 
2

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

私は同じエラーが発生しました。だから私はコンソールにエラーを出力しようとしました(bingoのおかげで)。問題はgulp-uglifyがES6で動作したくないということです。 JSコードをES2015に変更しました。 gulp-babelを使用することもできます。

0

私は同じ問題を抱えていて、それは問題を出していたjsファイルになった。最大の問題は10 jsファイルでしたが、少し掘り下げた後に私の問題に; が追加されていませんでした。あなたのコードを小さくするので、ES6を使用しても問題はありません。コードの最後に;を追加するか、作業。私の場合は

0

、私がwiredepと同様のエラーがあったが、それはthiisエラーをretningた理由を把握することができませんでした、それは「矢印構文」機能 (例えばdata=>{ // do something; }