【发布时间】:2014-11-14 06:34:21
【问题描述】:
我想在我的 package.json 文件中安装一个私人存储库。
"private-module": "git+ssh://git@bitbucket.org:private/private-module.git"
默认情况下,npm 使用您的默认私钥。我希望能够指定在运行npm install 时 npm 应该使用哪个 ssh 密钥。有没有办法做到这一点?
【问题讨论】:
我想在我的 package.json 文件中安装一个私人存储库。
"private-module": "git+ssh://git@bitbucket.org:private/private-module.git"
默认情况下,npm 使用您的默认私钥。我希望能够指定在运行npm install 时 npm 应该使用哪个 ssh 密钥。有没有办法做到这一点?
【问题讨论】:
这里有一些解决方案:
向您的~/.ssh/config 添加一个条目。例如:
使用ssh-agent 并预先将您的密钥添加到代理实例。
使用 ssh-ident 之类的东西根据当前工作目录或传递给 ssh-ident 的参数动态选择 ssh 代理和身份。正如他们的自述文件所述,您通常会将 ssh-ident 别名为 ssh,以便在任何地方自动使用它。
【讨论】:
~/.ssh/config 一样。以及如何使用ssh-agent
在 mscdex 的 answer 的第一部分进行更改后,您可能需要将主机添加到已知主机列表中 - 在 npm install 命令起作用之前。
您可以通过将私有存储库克隆到另一个目录来做到这一点:
git clone ssh://git@bitbucket.org:private/private-module.git
系统可能会询问您是否要继续,输入 yes 并输入,然后 bitbucket.org 是受信任的。返回您的项目目录并重试npm install。这是 mscdex 的答案为我工作所需要的。
还有其他添加受信任主机的方法,但这样做是为了验证您实际上可以访问所需的私有存储库。
【讨论】:
否则,您可以在 .npmrc 文件中使用 NPM 令牌:
// .npmrc
//registry.npmjs.org/:_authToken=${YOUR_NPM_TOKEN}
来源:https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules
【讨论】:
npm install 使用的密钥。私有注册表无关紧要。