我需要将我的常用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中使用它们。
答案 0 :(得分:0)
你可以在npm上拥有private modules。它的价格为每月7美元,而且是为了这里的用例而创建的。
如果您出于某种原因不想这样做,那么您可以依靠git-specific environment variables来解决您的依赖关系。例如,如果您使用git+ssh://git@SERVER:USER/MODULE.git
作为依赖项,那么npm将尝试使用git使用的默认凭据(使用ssh使用的凭据)使用git来获取它。您甚至可以更改GIT_SSH
环境变量以完全控制SSH会话。
有关更多选项,请参阅Install node module from own gitlab server。
答案 1 :(得分:0)
据我所知,没有办法创造这种变量。 我解决问题的方法是: