npm用子模块安装forked-git

npm install forked git with submodule

本文关键字:安装 forked-git 模块 npm      更新时间:2023-09-26

我正试图让npm通过从package.json读取的npm installnode-gitteh作为依赖项安装。不幸的是,这个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"
}

我得到了一个相当于";未找到子模块文件夹";。如果我手动克隆同一个repo,并从node-gitteh文件夹中进行递归子模块更新和npm install,它工作得很好,但我不知道如何让npm做到这一点。

我也遇到过同样的问题,到目前为止,我只是将模块克隆到node_modules中,然后手动更新子模块。如果能让npm自动处理这个问题,那就太好了。

在package.json中有一个脚本字段(请参阅npm文档)所以可以做

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

请参阅https://github.com/isaacs/octave-test例如。

根据文档,您需要以特殊格式提供git url。此外,它需要指向git-reo(与git clone使用的地址相同),而不是github提供的tarball。

在您的情况下(gitoverhttps),它将是:

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

使用此选项,npm将默认为master分支。