npm使用子模块安装forked git

时间:2012-03-03 05:15:37

标签: javascript node.js npm

我正在尝试让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执行此操作。

2 个答案:

答案 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将默认为主分支。