我们的 npm 项目有一个 git 依赖项,它位于需要凭据的私有服务器上。项目和依赖项都由同一台服务器托管。
使用带有凭据的 git 依赖项会导致各种问题:身份验证错误、npm 将人们的用户名添加到中的 URLpackage.json
等。
为了尝试解决这个问题,我生成了一个只读访问令牌并将其作为密码嵌入到 URL 中。
{
"dependencies": {
"myPackage": "git+https://user:[email protected]`
...
}
...
}
```
这可以正常运行npm install
,但是它用wincred
访问令牌替换了我缓存的 git 凭据()!
有没有我可以在构建之前和之后运行的命令来说明以下内容:“请暂时不要缓存这些凭据,但也不要忘记缓存?”
如果要避免将凭据保存到凭据帮助程序,则需要将
credential.helper
选项设置为空字符串。您可以使用类似 的语法来做到这一点git -c credential.helper= clone URL
,但必须在调用命令时使用,如果它是由 npm 调用的,这将很困难。请注意,通常将凭据嵌入 URL 是不安全的,您应该避免这样做。事实上,在 Git 列表中已经讨论过放弃对此的支持。您可以尝试使用Git FAQ中使用自定义配置文件从环境中读取的示例。该文件可能如下所示:
然后你可以(假设你的文件是
foo.cfg
),GIT_TOKEN
在环境中设置并运行GIT_CONFIG=foo.cfg npm
。假设 npm 不会剥离其环境;如果是这样,那么你就不走运了。