2013-06-12 70 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仓库导入任务的事实。这很棒!! –