我遇到了一个我不确定如何以最佳方式解决的问题。这里是:

我们最近开始使用私有(private) NPM 包,并试图找出如何将我们的本地开发循环与 CI 和部署管道联系起来。

我已经查看并开始利用 NPM_TOKEN 变量。
在 CI 中,我们正在执行以下操作:

echo "//registry.yarnpkg.com/:_authToken=$NPM_TOKEN" >> ~/.npmrc

这很有效,但在 Heroku 上部署期间,我们无法访问 home。所以为了让它在 Heroku 上工作,我们在项目目录中添加了一个 .npmrc 文件。这很有效,因为 npm 使用环境变量来填充它。

问题是在本地,所有 yarn 命令都因缺少变量而失败。 NPM 网站 (https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules) 上的建议方法是将 token 添加到 .profile 中的环境中。这似乎不是最好的解决方案,因为该设置现在是全局的,并且应该保存在每个存储库中。

我在这里发现了一个使用 npm 的类似问题,但它似乎不适用于 yarn 。
Using auth tokens in .npmrc
那里的评论还提到它不适用于 npm,并且没有提到 dotenv 文件的文档。

有没有更好的方法来处理这个问题?似乎是一个很早就应该解决的常见问题......

最佳答案

根据我的经验,这可能有点棘手。感觉你提供的资源应该提供最好的指导。有一个 .yarnrc 文件,我猜它也链接到 npmrc 文件。无论如何,我至少可以分享我在一个对我有用的项目中使用的设置:(这是来自一个较旧的项目,因此它可能不再相关。如果不是,请告诉我,我可以删除此答案)

.npmrc 文件:

_auth = token
registry = http://example.com
ca = null
email = [email protected]
always-auth = true

.yarnrc 文件:
registry "http://example.com"

关于node.js - 带有 .npmrc 和身份验证的 yarn ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58882143/

10-09 08:24