我创建了一个简单的带有参数的任务:
gulp.task("js", () => {
let stream = gulp
.src("./src/**/*.js", { base: "./src/" })
.pipe($.plumber())
.pipe($.changed("temp"))
.pipe(babel());
// minify is min arguement 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;
});
我想根据要进行质量检查还是PROD进行缩小:
gulp.task("push-dev", ["js"], function() {})
gulp.task("push-prod", ["js --min"], function() {})
但是我得到了错误:
[11:51:32]任务'js --min'不在您的gulpfile中
我正在尝试的可能吗?我试图避免创建一个全新的任务,只是为了处理不同环境中的缩小问题。
答案 0 :(得分:1)
从任务中单独定义功能,而不是直接在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() {});