Node.js 读取package.json中的外部凭据

Node.js 读取package.json中的外部凭据,node.js,git,ssh,npm,Node.js,Git,Ssh,Npm,我需要将我的公共npm模块作为git依赖项,并在许多模块中使用它。 我正在尝试使用访问令牌在git中进行授权。位我不想将令牌存储在package.json中(至少,如果它发生变化,很难在少数模块中对其进行更改) 我可以这样做吗: package.json ... "scripts": { "preinstall": "read-credentials.sh" } ... "dependencies": { ... "my-module": "git+https://$

我需要将我的公共npm模块作为git依赖项,并在许多模块中使用它。 我正在尝试使用访问令牌在git中进行授权。位我不想将令牌存储在package.json中(至少,如果它发生变化,很难在少数模块中对其进行更改)

我可以这样做吗:

package.json

... 
"scripts": {
    "preinstall": "read-credentials.sh" 
}
...
"dependencies": {
    ...
    "my-module": "git+https://$$$token-from-variable$$$:x-oauth-basic@some-repo-url"
    ...
}
我知道关于私有npm模块的选项,或者为git访问生成ssh密钥,但这并不适合我。问题的重点是找出是否有办法从一些预安装脚本(在那里我可以访问访问令牌)中设置变量,并在package.json中使用它们

您可以在npm上使用。它的成本为7美元/月,并且完全是为您这里的用例创建的

如果您出于某种原因不想这样做,那么您可以依靠它来解决依赖关系。例如,如果您使用
git+ssh://git@SERVER:USER/MODULE.git
作为依赖项,然后npm将使用git使用的默认凭据(反过来使用ssh使用的凭据)尝试使用git获取它。您甚至可以更改
GIT_SSH
环境变量,以完全控制SSH会话

有关更多选项,请参阅。

您可以在npm上使用。它的成本为7美元/月,并且完全是为您这里的用例创建的

如果您出于某种原因不想这样做,那么您可以依靠它来解决依赖关系。例如,如果您使用
git+ssh://git@SERVER:USER/MODULE.git
作为依赖项,然后npm将使用git使用的默认凭据(反过来使用ssh使用的凭据)尝试使用git获取它。您甚至可以更改
GIT_SSH
环境变量,以完全控制SSH会话


有关更多选项,请参见。

据我所知,无法创建此类变量。 我的问题解决方案:

  • 创建其他模块,可以从外部位置获取令牌,我可以将其放入公共git或npm repo中
  • 在依赖项中添加此模块
  • 在postinstall脚本中调用它
  • 使用npm.commands.install从JS获取令牌、构建url并安装我的私有git模块

  • 据我所知,没有办法创建这样的变量。 我的问题解决方案:

  • 创建其他模块,可以从外部位置获取令牌,我可以将其放入公共git或npm repo中
  • 在依赖项中添加此模块
  • 在postinstall脚本中调用它
  • 使用npm.commands.install从JS获取令牌、构建url并安装我的私有git模块

  • 对不起,我更新了问题。私有模块、环境变量或ssh密钥对我来说不是好的解决方案。不过还是要谢谢你。这个答案是在添加到问题之前写的:“我知道关于使用私有npm模块的选项,或者为git访问生成ssh密钥,但这不适合我。”对不起,我更新了问题。私有模块、环境变量或ssh密钥对我来说不是好的解决方案。不过还是要谢谢你。这个答案是在添加到问题之前写的:“我知道关于使用私有npm模块的选项,或者为git访问生成ssh密钥,但这不适合我。”