GulpUglifyError:Unable to minify JavaScript

匿名 (未验证) 提交于 2019-12-03 03:04:01

问题:

I am trying to minify my script files for which i am using gulp task runner And I am trying gulp-uglify plugin

Code:

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

but i am getting error as

when i try to run gulp task as gulp concat Any help would be appreciated

回答1:

To see the error in console:

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/')) }); 

To find the exact file, with line number of error register and run this task:

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


回答2:

Have you used ES6 format in your script file? If so try ES5 now because when you do gulp-uglify it doesnt understand ES6 format as of now and after that try your code

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

and run the task gulp concat it will work



回答3:

Try using this

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/')); }); 


回答4:

The main error is generated when you're using ES6 format. Use the gulp-uglify-es module instead of 'gulp-uglify' to overcome this error.

var uglify = require('gulp-uglify-es').default; 


回答5:

The main error to Unable to minifies JavaScript is the path not found. You can use the task usemin For this you need:

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

and requires :

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()] 


回答6:

you may have syntax error or used ES6 syntax. you can try https://skalman.github.io/UglifyJS-online/ firstly.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!