javascript - 为什么在创建带有参数的任务时出现“任务不在您的 gulpfile 中”?
问题描述
我创建了一个带有参数的简单任务:
gulp.task("js", () => {
let stream = gulp
.src("./src/**/*.js", { base: "./src/" })
.pipe($.plumber())
.pipe($.changed("temp"))
.pipe(babel());
// minify is min argument provided
if (args.min == true) stream = stream.pipe($.uglify());
// Update paths
stream
.pipe(
$.preprocess({
context: {
PATH: save.dest,
COMMIT: pkg.version
}
})
)
.pipe(gulp.dest("temp"));
return stream;
});
我想根据我是推到 QA 还是 PROD 来缩小:
gulp.task("push-dev", ["js"], function() {})
gulp.task("push-prod", ["js --min"], function() {})
但我得到了错误:
[11:51:32] 任务 'js --min' 不在您的 gulpfile 中
我正在尝试的可能吗?我试图避免为了处理不同环境中的缩小而不得不创建一个全新的任务。
解决方案
与您的任务分开定义您的功能,而不是直接在您的gulp.task
.
let jsFunc = (doMininfy) => {
let stream = gulp
.src("./src/**/*.js", { base: "./src/" })
.pipe($.plumber())
.pipe($.changed("temp"))
.pipe(babel());
// assuming you meant the parameter to go here?
if (doMininfy) stream = stream.pipe($.uglify());
// Update paths
stream
.pipe(
$.preprocess({
context: {
PATH: save.dest,
COMMIT: pkg.version
}
})
)
.pipe(gulp.dest("temp"));
return stream;
});
gulp.task("js", () => jsFunc());
gulp.task("js-min", () => jsFunc(true));
gulp.task("push-dev", ["js"], function() {});
gulp.task("push-prod", ["js-min"], function() {});
推荐阅读
- html - rvest 网络抓取在尝试收集产品价格信息时返回一个空数据框
- javascript - React-选择多选
- reactjs - React/Spring/MySQL 容器化:拉取镜像后前端无法启动
- c - C Eclipse - 读取文件时打印不需要的 unicode 字符
- kubernetes - 如何将 helm 包连接到 PersistentStorage 卷?
- sql - 使用两列作为键对两个表进行 SQL 查询
- python - Python:linecache文件大小限制?
- docker - 在 docker 容器中制作/构建内核模块
- excel - 有没有办法通过 openpyxl 将下拉菜单保留或添加到 Excel?
- r - 如何在 R 中的 lapply 中输入变量作为图表的 ggtitle 的一部分?