2013-06-12 98 views
7

我需要實現一個自定義的Grunt任務,並且我完全失去了開發工作流程。Grunt:自定義任務開發指南

  1. 如何開發自定義任務,並模擬在開發過程中使用npm加載它?
  2. 除了使用npm之外,還有其他分配自定義任務的方式嗎?我的意思是,我可以分發一個定義整個定製Grunt任務的JavaScript文件,並直接將其導入Gruntfile.js

由於整個任務將處於一個非常早期的發展階段,可能在npm中發佈它的努力並不是一個好主意。

在此先感謝。

+0

Grunt任務只是節點模塊。請閱讀。您可以使用'npm link'將模塊符號鏈接到其他模塊。 –

回答

21

定製grunt任務基本上是可以發佈到npm註冊表的節點模塊。看看現有的,以及文檔如何他們在這裏建:

http://gruntjs.com/api/grunt.task

基本上你只是做這樣的事情:

module.exports = function (grunt) { 

    // or use grunt.registerMultiTask 
    grunt.registerTask('your-taskname', 'your task description', function() { 
    }); 
}; 

,使您輕鬆,你應該使用grunt-initgrunt-init-gruntplugin基本上爲您設置一切!

如果你不想你的模塊發佈到NPM,你可以在你的項目從一個Git倉庫安裝(例如使用github上):

$ npm install git+https://github.com/your-user/your-repository --save 

的--save選項會自動將其保存爲依賴項目package.json。

,如果你只是想在你的任務你的項目一個js文件,把在您選擇的目錄(我用咕嚕任務在這裏),並將其包含在你的gruntfile這樣的:

grunt.loadTasks("./grunt-tasks"); 

將嘗試將該目錄中的每個js文件都包含爲咕嚕聲任務。

+0

(+1)'。/ grunt-tasks'相對於'Gruntfile.js'嗎? –

+0

是的! (...只是10個字符...我可以添加評論;-)) – hereandnow78

+0

哈哈哈,感謝您的努力,這似乎是正確的道路。我喜歡我可以從git倉庫導入任務的事實。這很棒!! –