web-dev-qa-db-ja.com

Gulp-uglify:erを投げます。 //未処理の「エラー」イベント

私は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

どうもありがとう

57
khue bui

あなたの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'));
  });

Gulpタスクを再度実行すると、まだエラーが発生しますが、今回は出力の上部に向かって、uglifyが処理に問題を抱えているファイルと行番号が表示されます。そこからデバッグします。

おそらく構文エラーですか?それを修正して再試行してください。

たぶん、Visual Studioプロジェクトで時々見られるような予期しない文字を含む奇妙な_reference.jsファイルを持っているでしょうか? gulp.srcから除外して、再試行してください。

128
bingo

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

13
Senenko Vitaliy

私の場合、「矢印構文」関数を受け入れないようです(例:data=>{ // do something; }

4
Yuval A.

また、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'));
  });
4

同じ問題が発生し、同じエラーが発生していました。問題は、私の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',
....
....
}
0

gulp-uglifyの代わりに gulp-uglify-es を使用してください。 es6で動作します

0
Ivanna