我正在尝试从我的组织设置的 Azure Artifacts Feed 安装一些包。我还需要https://registry.npmjs.org/中的其他外部包。尽管他们已将 NPM 配置为 feed 的上游源,但我的“读者”权限不允许我添加新包。因此,我只能使用 NPM 范围从范围注册表安装私有(private)包,从官方注册表安装公共(public)包。但我无法仅使用范围名称安装私有(private)包。
我已经配置了用户的 .npmrc
,使用“vsts-npm-auth
”进行身份验证。现在看起来像这样:
# $HOME\.npmrc
proxy=http://my-enterprise-proxy.com
noproxy[]=blah-blah-blah
strict-ssl=false
registry=https://registry.npmjs.org/
@feed-scope:registry:=https://pkgs.dev.azure.com/[ORGANIZATION_NAME]/_packaging/[FEED_NAME]/npm/registry/
always-auth=true
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
现在我尝试执行:
npm install @feed-scope/package-needed
我得到:
npm ERR! code E404
npm ERR! 404 Not Found - GET pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/@my-scope%2fpackage-needed - The package '@my-scope/package-needed' was not found in feed '[FEED_NAME]'
npm ERR! 404
npm ERR! 404 '@my-scope/package-needed@*' is not in this registry.
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
我浏览了我的组织的提要,只有一个名为“package-needed”的包。我怀疑我添加到命令中的范围名称到底是什么问题。但我不知道如何删除它。
PS:请忽略那些占位符。
最佳答案
不幸的是,这是行不通的。范围是 npm 包名称的一部分。您应该与 Feed 所有者合作,为您获取“协作者”角色,该角色与“读者”角色相同,并且能够使用来自上游但尚未保存到您的 Feed 中的包。这与贡献者角色不同,贡献者角色还增加了将包直接发布到提要的能力。
关于azure - 如何让 npm 安装没有范围名称的范围包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74122123/