从devDependencies模块运行gruntfile

时间:2014-04-04 09:27:18

标签: javascript node.js gruntjs npm

我正在进行一些.js框架测试。我在我的package.JSON里面有devDependencies:

  "devDependencies": {
    "myFramework": "https://github.com/myRepo/myFramework/tarball/master",
    "grunt": "~0.4.2",
    // etc

这可以按预期工作,并在我的./node_modules/myFramework

中安装此框架

此模块(myFramework)编译我需要的文件。所以它需要运行gruntfile.js来编译。那些编译过的文件将在我的本地gruntfile中使用。关于如何做到这一点的任何想法?

我考虑过使用npm脚本,例如:

  "scripts": {
    "prepublish": "node node_modules/myFramework/Gruntfile.js",

但这个例子没有用。我在console.log('Test'); gruntfile中有一个myFramework,没有记录......

2 个答案:

答案 0 :(得分:0)

您永远不必运行除当前所在仓库以外的任何Gruntfile任务。

就像你的package.json文件一样,每个存储库应该只有一个Gruntfile.js。

这不能强调。需要多个Gruntfiles的场景可以通过使用更简单的设置和基础架构来解决。事实上,jQuery在源代码库中拥有它自己的Gruntfile.js,这与你的构建流程无关。另一个包可以使用Makefile,也可以使用任何其他方式创建最终产品。您永远不必处理第三方库作者用于生成构建的工具。

http://thanpol.as/grunt/Managing-large-scale-projects-with-Grunt/

上阅读更详细的分析

答案 1 :(得分:0)

刚出现的一个想法是我可以复制并粘贴编译文件的任务(来自节点模块gruntfile)在我的本地gruntfile中。 当然改变任务的路径以反映现在文件位于/node_modules/myFramework/

我还是打开这个问题来检查是否还有其他(可能更好)的方法。