2015-06-29 100 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