【问题标题】:Grunt: custom task development how-toGrunt:自定义任务开发方法
【发布时间】:2013-06-09 00:54:28
【问题描述】:

我需要实现一个自定义的 Grunt 任务,但我完全不了解开发工作流程。

  1. 如何开发自定义任务并在开发过程中使用 npm 模拟加载它?
  2. 除了使用npm,还有其他方法可以分发自定义任务吗?我的意思是,我可以分发定义整个自定义 Grunt 任务的 JavaScript 文件并将其直接导入 Gruntfile.js 吗?

由于整个任务将处于非常早期的开发阶段,因此将其发布到npm 可能不是一个好主意。

提前致谢。

【问题讨论】:

  • Grunt 任务只是节点模块。仔细阅读。您可以使用npm link 将模块符号链接到其他模块。

标签: javascript node.js build npm gruntjs


【解决方案1】:

自定义 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 文件,请将它放在你选择的目录中(我在这里使用 grunt-tasks),然后像这样将它包含在你的 gruntfile 中:

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

这将尝试将该目录中的每个 js 文件包含为 grunt 任务。

【讨论】:

  • (+1) ./grunt-tasks 是否相对于 Gruntfile.js
  • 是的! (......只有10个字符......我可以添加评论;-))
  • 哈哈哈,感谢您的努力,这似乎是正确的道路。我喜欢我可以从 git repo 导入任务的事实。这太棒了!
  • 简短而清晰的解释 - 谢谢,正在寻找这样的东西! :) 快速问题:我认为示例末尾有一个不必要的“)”
猜你喜欢
  • 2023-04-03
  • 2015-05-10
  • 2017-11-10
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多