Gulp-uglify: lancer; / / événement "Erreur" non manipulé

je suis nouveau à gulfp , et je suis des tutoriels dans http://leveluptuts.com/tutorials/learning-gulp , je reçois cette erreur:

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)

voici mon code:

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

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

});

et l'arbre de l'annuaire, tout simplement

-gulp
     -js/
     -gulpfile.js

merci beaucoup

51
demandé sur khue bui 2015-10-02 18:59:42

6 réponses

votre tâche uglify est probablement étouffante sur l'un des fichiers qu'il essaie de traiter. Gérer l'erreur et écrire la sortie sur la console pour que vous puissiez voir quel fichier cause l'échec de la tâche.

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

lorsque vous exécutez votre tâche gulfp à nouveau, vous obtenez toujours une erreur, mais cette fois, vers le haut de la sortie, vous verrez le numéro de fichier et de ligne que uglify a des problèmes de traitement. Déboguez à partir de là.

peut-être que c'est un erreur de syntaxe? De la réparer, et essayez à nouveau.

peut-être que tu as une _reférence bizarre.un fichier js avec des caractères inattendus comme ceux que vous voyez parfois dans les projets de Studio? De l'exclure de la gulp.src et essayez de nouveau.

114
répondu bingo 2015-10-08 03:39:43

j'ai eu la même erreur. J'ai donc essayé de sortir une erreur sur la console (grâce à bingo ). J'ai réalisé que le problème est que gulp-uglify ne veut pas travailler avec ES6. J'ai changé mon code JS en ES2015 et voilà. Vous pouvez également utiliser goup-babel .

11
répondu Senenko Vitaliy 2017-07-13 19:03:29

vous pouvez Aussi utiliser 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
répondu Kamuran Sönecek 2017-06-21 10:13:13

dans mon cas, il semble qu'il n'accepte pas la fonction "arrow-syntax" (par exemple data=>{ // do something; } )

4
répondu Yuval A. 2018-02-04 15:41:50

j'ai eu le même problème et devenait le même message d'erreur. Le problème était qu'un de mes fichiers JS avait un @charset "UTF-8"; à la première ligne. Donc la syntaxe était cassée à cause du symbole @ . Je l'ai enlevé et il a bien fonctionné.

{
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
répondu Himanshu Upadhyay 2017-06-05 12:57:49

j'ai eu le même problème et il est venu à un dossier js qui donnait des problèmes. Le plus gros problème était que j'avais 10 fichiers js mais après un petit détour, mon problème n'était pas d'ajouter ; puisque cela va minifier votre code, cela n'a pas d'importance que vous utilisiez ES6 vous devez ajouter ; à la fin de votre code ou la minification ne fonctionnera pas.

0
répondu Justin 2017-12-18 10:59:36