2015-06-29 124 views
1

我定义与多任务和目标的咕噜项目咕噜目标,与任务build,我想运行一些复制目标,然后用任务deployment,我也想不过来运行copy与其他一些目标(例如,只复制文件夹到特定目录进行部署),并且我不想在build任务中执行此目标。如何跳过默认

所以,我怎么可以跳过从build

下面这个咕噜的目标是我的榜样

grunt.registerTask('build', ['clean', 'copy']); 
grunt.registerTask('deployment', ['copy:deployment']); 

grunt.initConfig(
    { 
    copy: { 
     foo: // Do something here, 
     bar: // Do anothering here, 
     .... 
     deployment: // Copy file and execute something for deployment target. 
    }, 
    } 
); 

回答

1
grunt.registerTask('build', ['clean', 'copy:foo', 'copy:bar']); 
grunt.registerTask('deployment', ['copy:deployment']); 
+0

感谢@juank,但是也有很多的下'copy'任务指标,所以我不希望包括在寄存器'build'任务的所有这些目标,只是想忽略'build'任务中的'deployment'目标 –

0

我建议你指定比如复制您的构建任务副本的目标:打造一个普通的目标或类似的副本:foo,copy:bar ..我不认为可以选择在grunt中单个不想要的目标(除非通过函数调用创建通用任务)

编辑:

//something like this 
grunt.registerTask('copy:build', function(){ 
    var copyConfig = grunt.config.get('copy'); 
    Object.keys(copyConfig).forEach(function(target){ 
    if(target !== 'deployment'){ 
     grunt.task.run('copy:'+target) 
    } 

    }); 
}) 

grunt.registerTask('build', ['clean', 'copy:build']); 
//etc 
+0

创建一个通用任务如下所示:grunt.registerTask('build',createMyBuildTask()); – rgruenke

+0

能否请你帮忙给我你的'createMyBuildTask'作为例子? @eimfach –

+0

你解决了你的问题吗? – rgruenke