需求来源
Gulp 一般使用一个默认的任务,如果需要处理不同的文件就多建几个任务,但是这是一般的做法。
比如本站源码就分成多个模块,项目结构都一样,如果按一般的做法就是要建无数个任务,关键是项目是不断开发中的,不可能每次都新建,所以就想怎么自动切换处理不同文件夹。
解决方法
Gulp 调用不同的任务是通过 gulp task
这个调用task任务的,如果不存在task任务就会报错,那有没有可能 通过 gulp task
调用处理 task 这个文件夹呢?
1.首先获取 参数
var name = '';
if (process.argv && process.argv.length > 2) {
name = process.argv[2]; // 这就获取到了参数
}
2.然后根据参数改变目标文件夹
但是 gulp task
是会调用 task 任务的,那么可以
3.临时生成 task 任务
name 可能为空,但不能生成一个空命名的任务
4.最终结果
var gulp = require('gulp'),
minCss = require('gulp-clean-css'),
name = '';
if (process.argv && process.argv.length > 2) {
name = process.argv[2]; // 这就获取到了参数
}
function cssTask() {
return gulp.src('src/' name + "/*.css")
.pipe(minCss())
.pipe(gulp.dest('dist/'));
}
exports.cssTask = cssTask;
var build = gulp.series(gulp.parallel(cssTask));
gulp.task(mo, build);
gulp.task('default', build);
测试 压缩 test 文件夹下的css
转载请保留原文链接: https://zodream.cn/blog/id/24.html