从另一个任务访问Grunt当前任务
Accessing Grunt Current Task from Another Task
假设我有一个任务,myCustomTask
,它被另一个任务quick
调用。
grunt.registerTask('myCustomTask', function(){
if(this.nameArgs === 'quick'){
console.log('ignoring task...');
return;
}else{
grunt.task.run('my-custom-task');
}
});
我希望grunt quick
忽略myCustomTask
,而不将其从quick
任务中删除。
grunt.registerTask('quick', [
'task1',
'task2',
'myCustomTask'
]);
我希望当任务以grunt quick
的形式运行时,this.nameArgs === 'quick'
会触发,但它会跳过它并到达else块。换句话说,只有当我们使用this.nameArgs === 'myCustomTask'
时,才满足第一个条件
我如何针对当前正在调用自定义任务的任何任务,以便告诉它忽略它?
您尝试过动态别名任务吗?
我认为你可以做以下事情:
grunt.registerTask('myCustomTask', function(mode) {
if (mode == 'quick') {
console.log('ignoring task...');
return;
}
grunt.task.run('my-custom-task');
});
更新
如果您想在某个任务已经运行的情况下排除任务执行,那么您可以执行以下操作:
var taskSettings = {};
grunt.registerTask('task1', function() {
console.log('task 1');
});
grunt.registerTask('task2', function() {
if ('quick' == taskSettings.origin) {
console.log('skip task 2');
} else {
console.log('task 2');
}
});
grunt.registerTask('quick', function () {
taskSettings.origin = this.name;
grunt.task.run('task1', 'task2');
});
但对我来说,这看起来很奇怪,我建议在任务的目标之间划分逻辑。
相关文章:
- 可以't使用grunt-bower任务插件运行我的grunt-task
- Grunt Copy任务不复制父文件夹's文件保存到正确的文件夹中
- Grunt为任务设置选项,并使用新值运行该任务
- 找不到从 CLI 运行 PHP 的 grunt-shell 任务
- 用于开发/生产环境的交替grunt.js任务
- 从另一个任务访问Grunt当前任务
- 未使用grunt找到任务
- grunt-dalekjs任务在执行后不会关闭chrome
- Grunt手表任务不起作用
- 不能让Grunt ' watch '任务运行
- 在Visual Studio 2015中绑定Grunt手表任务
- Grunt监视任务无法翻译ES6代码
- 使用grunt-crx任务出错
- Grunt sass任务产生错误,由于波旁包
- Grunt postcss任务排除文件
- 我应该使用哪个grunt traceur任务
- 配置grunt copy任务,排除文件/文件夹
- Grunt -运行任务前动态设置配置
- 使用Grunt-uglify任务来破坏JS代码
- Grunt Watch任务Livereload选项指向Express服务器原因“;watch.livereload.fi