当gulpfile
中没有用户提供的任务时,是否有任何方法可以运行特定任务。
例如,如果用户运行gulp build
且build
中没有gulpfile
任务,那么特定任务(或默认任务,对我来说无关紧要) )应该运行。
作为类比,请将指定的任务视为gulp
的 404页面。
答案 0 :(得分:1)
gulp
继承自orchestrator
,其中包含tasks
实例变量,该变量是一个普通对象,其键是添加到实例的任务名称。如果您将tasks
替换为proxy
,则可以使用default
陷阱处理程序返回默认任务,例如get
:
const gulp = require('gulp')
gulp.tasks = new Proxy(gulp.tasks, {
get (target, property) {
if (target.hasOwnProperty(property)) {
return target[property]
}
return target.default
}
})
即使在已经将某些任务添加到gulp
实例之后,该代码也可以在任务序列开始之前的任何时间运行。
答案 1 :(得分:0)
TypeError: this.tasks.hasOwnProperty is not a function
所以我想发布我的更改。这是我的最终代码 -
gulp.tasks = new Proxy(gulp.tasks, {
get: function(target, property) {
if (undefined !== target[property]) {
return target[property];
}
return target.default; //or target["<Custom task name>"]
}
});