如何使用 Yarn 注册表作为 Azure DevOps 工件上游源?

Posted

技术标签:

【中文标题】如何使用 Yarn 注册表作为 Azure DevOps 工件上游源?【英文标题】:How to use Yarn registry as Azure DevOps artifact upstream feed? 【发布时间】:2020-07-07 18:28:53 【问题描述】:

我在 Azure DevOps 中有一个包含 javascript 包的单一存储库。我使用 lerna 来管理包,并使用 yarn 作为包管理器。我是 Azure DevOps 工件的新手,我想将 yarn 设置为上游提要。我已阅读 Use npm to store JavaScript packages in Azure DevOps Services or TFS 并按照步骤操作。使用npm 似乎一切正常,在我的项目中输入npm i 后,我可以在azure artifact 中看到源自npm 的包。但是如果我使用纱线什么都不会发生。有人可以帮帮我吗?

项目.npmrc:

registry=https://pkgs.dev.azure.com/<OrganizationName>/_packaging/<OrganizationName>/npm/registry/

always-auth=true

全球.npmrc%HOMEPATH%\.npmrc

//pkgs.dev.azure.com/<OrganizationName>/_packaging/<OrganizationName>/npm/registry/:_authToken=blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah

我还转到 feed 设置并将纱线注册表添加为新的公共上游源并将其移动到第一个上游源。但如果我在我的项目中输入yarn install,然后转到 Azure 工件并按源纱线过滤工件,则没有显示。

npm ping.npmrcs:

path\to\project's\package.json>npm ping
npm notice PING https://pkgs.dev.azure.com/<OrganizationName>/_packaging/<OrganizationName>/npm/registry/
npm ERR! code E404
npm ERR! 404 Not Found - GET https://pkgs.dev.azure.com/<OrganizationName>/_packaging/<OrganizationName>/npm/registry/-/ping?write=true
npm ERR! 404
npm ERR! 404  'ping' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\<UserName>\AppData\Roaming\npm-cache\_logs\2020-03-27T03_20_26_797Z-debug.log

npm ping 在别处:

C:\WINDOWS\system32>npm ping
npm notice PING https://registry.npmjs.org/
npm notice PONG 1.296ms

【问题讨论】:

【参考方案1】:

我删除了 %LOCALAPPDATA%\Yarn\Cache 中的 Yarn 缓存文件夹以及项目根目录中的 yarn.lock 文件和 node_modules 文件夹,然后重新安装了软件包。我认为问题是由于yarn.lock 文件。因为在 yarn.lock 文件中为每个包指定了注册表,并且因为我没有 package-lock.json npm 工作,而 yarn 没有。 您可以在我删除yarn.lock 文件之前以及在图像中重新安装包之后看到:

【讨论】:

以上是关于如何使用 Yarn 注册表作为 Azure DevOps 工件上游源?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure Dev Ops 中查看我的构建项目文件夹的内容?

在带有 PKCE 的 OAuth 授权流中使用时如何在 Azure 应用注册中启用 CORS?

如何在 Yarn 中使用多个 npm 注册表?

如何使用 Azure Powershell 执行此操作?

使用 ACR(天蓝色容器注册表)作为 Azure Devops json 管道的输入

Azure设备配置:组注册