Bar*_*ski 5 authentication node.js npm yarnpkg
我遇到了一个我不确定如何以最佳方式解决的问题。这里是:
我们最近开始使用私有 NPM 包,并试图找出如何将我们的本地开发循环与 CI 和部署管道联系起来。
我已经查看并开始利用 NPM_TOKEN 变量。在 CI 中,我们正在执行以下操作:
echo "//registry.yarnpkg.com/:_authToken=$NPM_TOKEN" >> ~/.npmrc
Run Code Online (Sandbox Code Playgroud)
这很有效,但在 Heroku 上部署期间,我们无法访问 home。所以为了让它在 Heroku 上工作,我们在项目目录中添加了一个 .npmrc 文件。这很有效,因为 npm 使用环境变量来填充它。
问题是在本地,所有纱线命令都因缺少变量而失败。NPM 网站 ( https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules )上的建议方法是将令牌添加到 .profile 中的环境中。这似乎不是最好的解决方案,因为该设置现在是全局的,并且应该保存在每个存储库中。
我在这里发现了一个使用 npm 的类似问题,但它似乎不适用于纱线。 在 .npmrc 中使用身份验证令牌 那里 的注释还提到它不适用于 npm,并且没有提到 dotenv 文件的文档。
有没有更好的方法来处理这个问题?似乎是一个很早就应该解决的常见问题......
使用.yarnrc 文件:
npmRegistryServer: "https://npm.pkg.github.com"
npmAuthToken: "secretAuthTokenValue"
Run Code Online (Sandbox Code Playgroud)
根据我的经验,这可能有点棘手。感觉您提供的资源应该提供最好的指导。我猜有一个 .yarnrc 文件也链接到 npmrc 文件。无论如何,我至少可以分享我在一个对我有用的项目中使用的设置:(这是来自一个较旧的项目,所以它可能不再相关。如果不是,请告诉我,我可以删除这个答案)
.npmrc 文件:
_auth = token
registry = http://example.com
ca = null
email = email@example.com
always-auth = true
Run Code Online (Sandbox Code Playgroud)
.yarnrc 文件:
registry "http://example.com"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11541 次 |
| 最近记录: |