服务器上有多个github私有npm存储库

时间:2013-02-18 21:37:57

标签: node.js github ssh npm

我在私有存储库中的github上有一个节点应用程序。此节点应用程序还具有我创建的自定义模块,它们位于单独的专用存储库中。

这是示例节点应用程序url:

git@github.com:thomas/node-application.git

这些都是节点应用程序使用的节点模块。

git@github.com:thomas/node-module1.git
git@github.com:thomas/node-module2.git

您可以使用以下命令在github上安装私有npm模块。

npm install git+ssh://git@github.com:thomas/node_module1.git

为了使其正常工作,机器需要设置ssh键。

我的本​​地计算机设置了我的github用户密钥并可以访问我的所有回购。

在我的服务器上,但是我正在使用部署密钥。我知道如何使用多个部署密钥的唯一方法如下。

Host na.github.com
HostName github.com
User git
IdentityFile ~/.ssh/gh_node-application
ForwardAgent yes

Host nm1.github.com
HostName github.com
User git
IdentityFile ~/.ssh/gh_node-module1
ForwardAgent yes

Host nm2.github.com
HostName github.com
User git
IdentityFile ~/.ssh/gh_node-module2
ForwardAgent yes

所以我需要使用

在服务器上安装模块
npm install git+ssh://git@nm1.github.com:thomas/node_module1.git
                          ^^^

这意味着生产和开发的依赖性会有所不同

"node-module": "git+ssh://git@github.com:thomas/node-module1.git"

VS

"node-module": "git+ssh://git@nm1.github.com:thomas/node-module1.git"
                              ^^^

如果我可以做这样的事情,这可能有用......

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/gh_node-application
IdentityFile ~/.ssh/gh_node-module1
IdentityFile ~/.ssh/gh_node-module2
ForwardAgent yes

2 个答案:

答案 0 :(得分:1)

您必须使用Deploy Keys为服务器提供对私有github存储库的SSH访问权限。

https://developer.github.com/guides/managing-deploy-keys/

答案 1 :(得分:0)

查看有关从全局目录或其他路径加载模块的Node.js文档。

http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders