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