可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.