2016-03-01 61 views
0

我想分割成小片大gruntfile來到這些文章: https://github.com/firstandthird/load-grunt-config http://ericnish.io/blog/how-to-neatly-separate-grunt-files/ 但是,似乎我失去了一些東西明顯。當我發出「grunt testtask」時,找不到任務。顯然,我正在做一些非常錯誤的事情,但我不明白。 這裏的文件的內容,精簡儘可能:負載咕嚕-Config中找不到目標任務

gruntfile.js: 
module.exports = function(grunt) { 
var path = require('path'); 

require('load-grunt-config')(grunt, { 
    configPath: path.join(process.cwd(), 'grunt3'), 
     init: true 
    }); 
}; 

grunt3/testtask.js: 
module.exports = { 
    copy: { 
    main: 
    { 
     files: 
     [{ 
      src: "test1.txt", 
      dest: "test2.txt" 
     }] 
    } 
    } 
}; 

I added an aliases file: 
module.exports = { 
    'default': [], 
    'mytesttask': [ 
    'testtask' 
    ] 
}; 

默認被發現。對於mytesttalk,我會得到「testtask not found」。 不應該aliases.js爲文件名(testtask)或「複製」(我也嘗試使用'複製'作爲目標任務)做一個registerTask? 根據--config-debug,有一個名爲「testtask」的配置對象。 我在這裏錯過了什麼?

謝謝。

附錄:在同一主題上發現了這個非常簡單和直接的文章,它展示瞭如何進一步簡化。再一次,它不起作用。未找到在別名中指定的任務。例如'mytesttask':['testtask'] - > testtask沒有找到,儘管有一個grunt/testtask.js文件包含來自原始gruntfile的任務。我錯過了什麼?

回答

1

在這篇優秀的文章http://mattbailey.io/a-beginners-guide-to-grunt-redux.html的幫助下,該模塊的作者之一評論github,我終於找到了我思考中的缺陷。這些文件不是由任務或目標組織的,而是由grunt模塊組織的。所以,你必須將它們命名爲copy.js(來自grunt-contrib-copy),cssmin.js(來自grunt-contrib-cssmin),concat.js(來自grunt-contrib-concat),並將各種目標放在這些文件。而不是相反(正如我所想的那樣)。也許從文檔中可以清楚地看到其他人,這不適合我。 Matt Bailey發表的文章非常棒,因爲它只顯示了真正必要的內容。我上面引用的Eric Nishio的文章不必要的複雜,因爲它沒有考慮別名文件。