我正在尝试让npm通过从node-gitteh
读取的npm install
作为依赖项安装package.json
。不幸的是,这个npm软件包在节点0.6.x中被破坏了,但没有问题,因为有一个分叉的仓库解决了这些问题(https://github.com/hughsk/node-gitteh.git)。
现在问题是这个分叉的repo有一个子模块,所以如果我尝试从package.json
中的github下载tar:
, "dependencies" : {
"gitteh" : "https://github.com/hughsk/node-gitteh/tarball/master"
}
我收到的错误等同于“未找到子模块文件夹”。如果我手动克隆相同的repo并从npm install
文件夹执行递归子模块更新和node-gitteh
,它可以正常工作,但我无法弄清楚如何让npm执行此操作。
答案 0 :(得分:3)
我遇到了同样的问题,到目前为止只依赖于将我的模块克隆到node_modules并手动执行子模块更新。让npm自动处理这个会很好。
在package.json中有一个脚本字段(参见npm docs) 所以可以做到
"scripts":{"preinstall": "git submodule update -i -r"}
有关此示例,请参阅https://github.com/isaacs/octave-test。
答案 1 :(得分:-2)
根据the docs,您需要以特殊格式提供git网址。
此外,它需要指向git repo(您将用于git clone
的相同地址),而不是github提供的tarball。
在你的情况下(git over https),它将是:
, "dependencies" : {
"gitteh" : "git+https://github.com/hughsk/node-gitteh"
}
使用此命令,npm将默认为主分支。