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