如何从父项目解析 Grunt 插件的递归依赖关系



(似乎有几个类似的问题,但没有一个适用或有有效的答案)。

我正在编写一个依赖于grunt-shellgrunt-concurrent插件的 Grunt 插件。

/* tasks/myTask.js */
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-shell');

从我的插件的工作目录中运行任务按预期工作。但是,当我尝试在另一个项目中使用插件的任务时,我得到:

>> Local Npm module "grunt-concurrent" not found. Is it installed?
>> Local Npm module "grunt-shell" not found. Is it installed?

我的 grunt 插件有什么方法可以使用其他插件,而无需在使用我的插件的每个项目中使用它们?

到目前为止,我的研究没有取得多大成功:

  • 噜咕噜的文档非常稀疏:http://gruntjs.com/creating-plugins
  • #grunt IRC是一座鬼城
  • https://github.com/ruyadorno/extend-grunt-plugin
  • https://github.com/gruntjs/grunt/issues/696(问题最终关闭而没有解决)

(回答我自己的问题 - 如果我仍然错了,请纠正)

我的 grunt 插件有什么方法可以使用其他插件,而无需在使用我的插件的每个项目中使用它们?

不,没有。

目前,您可以使用 peerDependencies,但它们在 NPM 3+ 中已弃用,因此这不是解决方案。

您需要随插件一起提供文档,以指示需要与插件一起安装哪些其他插件才能正常运行。

最新更新