2016-11-10 22 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()]