【问题标题】:How to use npm link with git repositories only accessible with ssh如何将 npm 链接与只能通过 ssh 访问的 git 存储库一起使用
【发布时间】:2015-04-23 16:42:07
【问题描述】:

我正在尝试使用一些支持库开发节点应用程序。这些项目都存在于通过 ssh 访问的私有存储库中。用户名和密码验证不是一个选项。

到目前为止,我一直在将 git 存储库 url 添加到 package.json 中

"dependencies": {
  "my-library":"git+ssh://git@repo-url:repo-name.git#master"
},

这不是很好,因为它不会导致可重现的构建,这意味着同时开发客户端代码和库需要推动每一个微小的变化。

npm link 似乎是解决此问题的理想选择,但在库目录中运行 npm link 会产生以下错误:

~/mylibrary$ npm link
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/mockelganger'
etc etc

很公平,它正在尝试修改系统全局位置。

~/mylibrary$ sudo npm link
|it@repo-url's password: -

那个“|”遮挡“g”是一个动画微调器。我已经确定这是 git 在我尝试将存储库作为路由访问时所做的;无论出于何种原因,它都看不到我的 ~/.ssh/id_rsa 或我的 ssh 代理。

我想我可以通过弄清楚如何为 root 运行 ssh-agent 来解决这个问题,但对我来说 npm link 甚至需要从 git 中读取是没有意义的。它只修改了我的计算机的配置,所以它为什么要访问网络?这让我觉得我做错了什么。

【问题讨论】:

    标签: node.js npm ssh-agent


    【解决方案1】:

    解决方案是将 npm 前缀更改为不需要 root 权限的地方。

    npm config set prefix ~/npm
    

    如果要安装 CoffeeScript 等可执行文件,请记住将 ~/npm 添加到路径中。

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多