我想使用 Yarn 安装托管在内部 Gitlab 上的私有包。因此,我.npmrc使用以下信息配置了我的:
@mypackage:registry=https://gitlab.intra/api/v4/packages/npm/
//gitlab.intra/api/v4/projects/819/packages/npm/:_authToken=xxxxx
//gitlab.intra/api/v4/packages/npm/:_authToken=xxxxx
always-auth=true
Run Code Online (Sandbox Code Playgroud)
当我尝试使用安装包时yarn add @mypackage/lib-node-client,Yarn 给我一个错误:
Trace:
Error: https://gitlab.intra/api/v4/projects/725/packages/npm/@mypackage/lib-node-common/-/@mypackage/lib-node-common-21.7.1.tgz: Request failed "404 Not Found"
at ResponseError.ExtendableBuiltin (/usr/lib/node_modules/yarn/lib/cli.js:696:66)
at new ResponseError (/usr/lib/node_modules/yarn/lib/cli.js:802:124)
at Request.<anonymous> (/usr/lib/node_modules/yarn/lib/cli.js:67062:16)
at Request.emit (node:events:369:20)
at Request.module.exports.Request.onRequestResponse (/usr/lib/node_modules/yarn/lib/cli.js:141640:10)
at ClientRequest.emit (node:events:369:20)
at HTTPParser.parserOnIncomingClient (node:_http_client:646:27)
at HTTPParser.parserOnHeadersComplete (node:_http_common:129:17)
at HTTPParser.execute (<anonymous>)
at TLSSocket.socketOnData (node:_http_client:512:22)
Run Code Online (Sandbox Code Playgroud)
所以,Yarn 找不到 URL:https://gitlab.intra/api/v4/projects/725/packages/npm/@mypackage/lib-node-common/-/@mypackage/lib-node-common-21.7.1.tgz
如果我尝试在浏览器上获取此内容,我可以下载该软件包...
如果有人可以帮助我,谢谢大家:)
小智 5
在您的.npmrc文件中,您讲述了如何连接到项目 819 的 GitLab。错误与项目 725 有关。GitLab 简单地拒绝连接。
尝试用
@mypackage:registry=https://gitlab.intra/api/v4/packages/npm/
//gitlab.intra/api/v4/projects/725/packages/npm/:_authToken=xxxxx
//gitlab.intra/api/v4/projects/819/packages/npm/:_authToken=xxxxx
//gitlab.intra/api/v4/packages/npm/:_authToken=xxxxx
always-auth=true
Run Code Online (Sandbox Code Playgroud)
我们有一个 gitlab 私有包注册表,并且不断收到此错误。
npm i @placeholder/package-name工作正常,但yarn add @placeholder/package-name出现 404 错误。
我尝试了该线程上列出的所有可能的解决方案。最后,gitlab 中有一个关于纱线安装故障排除的部分[1]。它说,
尝试将其添加到您的 .npmrc 文件中(并将 <your_token> 替换为您的个人访问令牌或部署令牌):
//gitlab.example.com/api/v4/projects/:_authToken=<your_token>
Run Code Online (Sandbox Code Playgroud)
我们之前的.npmrc样子是这样的
save-exact=true
unsafe-perm=true
@placeholder:registry=https://gitlab.com/api/v4/packages/npm/
//gitlab.com/api/v4/packages/npm/:_authToken=${PLACEHOLDER_TOKEN}
Run Code Online (Sandbox Code Playgroud)
添加上面的新行后,它看起来像这样,
save-exact=true
unsafe-perm=true
@placeholder:registry=https://gitlab.com/api/v4/packages/npm/
//gitlab.com/api/v4/packages/npm/:_authToken=${PLACEHOLDER_TOKEN}
//gitlab.com/api/v4/projects/:_authToken=${PLACEHOLDER_TOKEN}
Run Code Online (Sandbox Code Playgroud)
添加后,yarn add @placeholder/package-name效果很好。