npm安装与子模块分叉git

我试图让npm安装node-gitteh作为依赖通过npm installpackage.json读取。 不幸的是,这个npm包在节点0.6.x中被打破了,但没有问题,因为有一个分叉的repo来解决这个问题(https://github.com/hughsk/node-gitteh.git)。

现在的问题是,这个分叉repo有一个子模块,所以如果我尝试从package.json github下载tar:

 , "dependencies" : { "gitteh" : "https://github.com/hughsk/node-gitteh/tarball/master" } 

我得到一个错误,相当于“找不到子模块文件夹”。 如果我手动克隆相同的回购,并从node-gitteh文件夹执行recursion子模块更新和npm install ,它工作正常,但我不知道如何让npm来做到这一点。

我有同样的问题,到目前为止,只是依靠克隆我的模块到node_modules和手动进行子模块更新。 有npm自动处理这将是很好。

在package.json中有一个脚本字段(参见npm docs )所以可以这样做

 "scripts":{"preinstall": "git submodule update -i -r"} 

有关这方面的示例,请参阅https://github.com/isaacs/octave-test

根据文档 ,你需要提供一个特殊的格式的Giturl。 另外,它需要指向git repo(你将用于git clone地址),而不是github提供的tarball。

在你的情况下(通过https的git),这将是:

 , "dependencies" : { "gitteh" : "git+https://github.com/hughsk/node-gitteh" } 

使用这个,npm将默认为主分支。