带有.npmrc和身份验证的纱线

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

我们最近开始使用私有NPM软件包,并试图弄清楚如何将本地开发循环与CI和Deployment Pipeline联系起来。

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

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

这很好用,但是在Heroku上进行部署期间,我们无法访问家。因此,为了使其在Heroku上工作,我们在项目目录中添加了.npmrc文件。这很有效,因为npm使用环境变量来填充它。

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

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

有没有更好的方法来解决这个问题?似乎是一个很久以前应该解决的常见问题...

abduaini83 回答:带有.npmrc和身份验证的纱线

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

.npmrc文件:

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

.yarnrc文件:

registry "http://example.com"
,

今天使用 Azure Artifacts 遇到了这个问题。

documented project setup 之后,Azure DevOps 上自动生成的代码将 @ 符号编码为 %40 中的 <FEED_NAME>,这导致 yarn add artifacts_package_name 返回一个401 Unauthorized 错误:

# .npmrc doc example
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/
# .npmrc auto generated code on AzureDevOps
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<ORGANIZATION_NAME%40Local>/npm/registry/

问题已通过将所有出现的 %40 替换为 @ 来解决,例如:

//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<ORGANIZATION_NAME@Local>/npm/registry/

source

本文链接:https://www.f2er.com/3093542.html

大家都在问