npm安装与子模块分叉git
我试图让npm安装node-gitteh
作为依赖通过npm install
从package.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将默认为主分支。