我正在使用 Heroku、Node 和 GitHub。
我在 GitHub 中创建了一个 PAT(个人访问令牌)。我想用它在 GitHub 上安装一个私有存储库。
Node package.json 文件引用了存储库,我目前使用 HTTPS 作为协议。
例如,我要安装的私有远程 GitHub 存储库是:https://myname:[email protected]/myname/project.git
.
但是 GitHub 已经撤销了对 的使用token
,因为它在我的 Git 提交中是可见的。
Heroku 不提供开箱即用的功能,并且
package.json
本身不支持环境变量。一种选择是将您的依赖项构建为 NPM 包并将其发布到私有包存储库,例如Gemfury,其Heroku 插件有一个支持单个私有模块的免费计划。
简而言之,您可以使用、和将您的模块发布到 Gemfury 。然后,在依赖于您的私有模块的 Heroku 应用程序中,添加一个包含
https://npm-proxy.fury.io/APPID/
npm login
npm publish
.npmrc
FURY_AUTH
并设置包含您的 Gemfury 身份验证令牌的 Heroku 配置变量。这确实意味着您必须先更新您在 Gemfury 上发布的库,然后相关应用程序才能看到您对其所做的更改。无论如何,这可能是个好主意;依赖于特定标记的版本比依赖于可变分支更安全。
还有这个解决方法可以让您有效地将环境变量注入到您的
package.json
,但我还没有尝试过。添加到这个答案
1)创建环境变量链接。
2) 使用预安装挂钩链接将环境变量写入 package.json 文件。