问题:
在下载了新版的 gulp4 后,构建默认任务 default 报错,经过对比发现 gulp3 和 gulp4 申明和调用方式更新啦
报错:
AssertionError [ERR_ASSERTION]: Task function must be specified
Object.<anonymous>
解决:
- 原先的声明方式:
gulp.task(‘default’, [‘htmlmin’, ‘cssmin’, ‘jsmin’, ‘copy’]);
- 原先的调用方式:
gulp default || gulp
- 现在的声明方式:
gulp.task(‘default’, gulp.series[‘htmlmin’, ‘cssmin’, ‘jsmin’, ‘copy’]);
- 现在的调用方式:
gulp --tasks || gulp
源码
var gulp = require('gulp');
var less = require('gulp-less');
var cleanCSS = require('gulp-clean-css');
//minjs 合并压缩 JS
gulp.task('minjs', function() {
return gulp.src('src/js/*.js') //操作的源文件
.pipe(concat('built.js')) //合并到临时文件
.pipe(gulp.dest('dist/js')) //生成到目标文件夹
.pipe(uglify()) //压缩
.pipe(rename({
suffix: '.min'
})) //重命名
.pipe(gulp.dest('dist/js'));
});
//less处理任务 编译less
gulp.task('less', function() {
return gulp.src('src/less/*.less')
.pipe(less()) //编译less文件为css文件
.pipe(gulp.dest('src/css'));
})
// gulp3语法
// gulp.task('default', ['minjs', 'less', 'miniHtml', 'mincss']);
/* gulp4语法 */
// gulp.task('default', gulp.series['minjs', 'less']);
gulp.task('default',gulp.series(gulp.parallel('minjs','less')));