首页 > 解决方案 > 如何使用 Yarn 注册表作为 Azure DevOps 工件上游源?

问题描述

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

项目.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 工件并按源纱线过滤工件,则没有显示任何内容。

天蓝色 devops 提要设置

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

标签: azure-devopsyarnpkglernaazure-artifacts

解决方案


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

yarn.lock 文件更改了注册表


推荐阅读