2016-11-10 21 views
12

我试图来缩小我的脚本文件里面我是用一口任务运行 ,我试图吞掉,丑化插件GulpUglifyError:无法缩小JavaScript

代码:

gulp.task('concat', function() { 
    return gulp.src('app/**/*.js') 
     // .pipe(concat('script.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('./dist/')) 
}); 

,但我得到错误的

enter image description here

当我尝试运行吞掉任务为一口CONCAT 任何帮助,将不胜感激

+0

可能重复的[如何解决这个缩小错误上Gulp?](http://stackoverflow.com/questions/38886840/how-to-solve-this-minification-error-on-gulp) –

回答

2

尝试使用此

var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var minifyJS = require('gulp-minify'); 

gulp.task('concat', function() { 
    return gulp.src('app/**/*.js') 
     .pipe(minifyJS()) 
     .pipe(concat('bundle.min.js')) 
     .pipe(uglify({ mangle: false })) 
     .pipe(gulp.dest('./dist/')); 
}); 
5

有你在脚本文件中使用ES6格式? 如果是这样尝试ES5现在,因为当你吞掉,丑化它不明白ES6格式现在 的,之后尝试你的代码

gulp.task('concat', function() { 
    return gulp.src('app/**/*.js') 
     .pipe(concat('script.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('./dist/')) 
}); 

和运行任务gulp concat将工作

+0

我突然跑进入这个错误,直到我看到你提到的ES5和ES6,并且意识到我拷贝并粘贴了一些代码,如“()=>”,并且一旦我将它恢复为ES5功能,它就会再次运行。谢谢! – newman

+2

它确实是相当无赖。这在github上已经有3年的时间了。 uglify应该能够处理ES6,我们不应该仅仅为了缩小目的而传递胖箭头函数。 – SMT

15

要查看在控制台错误:

var gutil = require('gulp-util'); 

gulp.task('concat', function() { 
return gulp.src('app/**/*.js') 
    // .pipe(concat('script.js')) 
    .pipe(uglify()) 
    .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); }) 
    .pipe(gulp.dest('./dist/')) 
}); 

要找到行中没有错误寄存器的的确切的文件,并运行此任务:

var pump = require('pump'); 

gulp.task('uglify-error-debugging', function (cb) { 
    pump([ 
    gulp.src('app/**/*.js), 
    uglify(), 
    gulp.dest('./dist/') 
    ], cb); 
}); 
+2

这实际上适用于我 –

1

无法缩小JavaScript的主要错误是找不到路径。您可以使用任务usemin为此,您需要:

$ sudo npm install gulp-usemin --save-dev 
$ sudo npm install gulp-livereload--save-dev 
$ sudo npm install gulp-util--save-dev 

,并要求:

var usemin = require('gulp-usemin'); 
var livereload = require('gulp-livereload'); 
var gutil = require('gulp-util'); //gutil for error display 

gulp.task('usemin',['jshint'], function(){ 
    return gulp.src('./app/index.html') 
    .pipe(usemin({ 
     css: [minifycss(),rev()], 
     scripts: [uglify().on('error', function(err) {gutil.log(gutil.colors.red('[Error]'), err.toString());this.emit('end');}),rev()] 
    })) 
    .pipe(gulp.dest('dist')) 
    .pipe(livereload()); 
}); 

Change the js: [uglify(), rev()] to scripts: [uglify(), rev()]