NPM 安装导致 401 Unauthorized for private repo
Posted
技术标签:
【中文标题】NPM 安装导致 401 Unauthorized for private repo【英文标题】:NPM install resulting in 401 Unauthorized for private repo 【发布时间】:2018-07-27 04:09:34 【问题描述】:我在 package.json
的依赖项中有以下行:
"log": "https://git.mydomain.com/myproject/myrepo/repository/archive.tar.gz?ref=0.1.0",
我得到以下信息:
km@Karls-MBP ~/dev/vertica (km/ref) $ npm install
npm ERR! code E401
npm ERR! 404 401 Unauthorized: log@https://git.mydomain.com/myproject/myrepo/repository/archive.tar.gz?ref=0.5.0
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/km/.npm/_logs/2018-02-16T08_49_38_669Y-debug.log
我不知道问题是 GitLab(repo 所在的位置)还是 NPM。
节点 v8.9.4 NPM v5.6.0【问题讨论】:
压缩包是否公开可用?如果没有,您需要在包 URL 中提供身份验证策略。你见过this问题/答案吗?此外,这似乎不太可能是 NPM 问题,但以防万一:尝试npm logout && npm login
,确保 .npmrc 中没有设置过时的 $NPM_TOKEN
环境变量或 _authToken
(查看您的主目录和项目目录)。
我必须按照以下步骤修复错误:docs.microsoft.com/en-us/azure/devops/artifacts/npm/…
【参考方案1】:
从主目录中删除 .npmrc,它应该可以工作。我做了同样的事情,它对我有用。
【讨论】:
这对我有用。在我的例子中,打印 401 是“npm install -g @vue/cli”。这个解决方案的目的是什么? 如果您需要 .npmrc 文件来对 *** 上的服务进行身份验证怎么办?【参考方案2】:我的用户目录 .npmrc 文件有一个过时的 authtoken,如下所示。
//registry.npmjs.org/:_authToken=3615fa68-123a-4d72-b99a-772b5b1edc48
删除此行后,npm 安装工作正常,不再引发身份验证错误。
【讨论】:
【参考方案3】:您需要将用户添加到 npm 注册
>> npm whoami [ it will return not authorized ]
要添加新用户,请按照以下步骤操作:-
>> npm adduser (then enter your name and complex password and your email)
>> npm whoami (return your registered name)
【讨论】:
【参考方案4】:我在使用--prefer-offline
时得到了这个
- npm ci --cache .npm --prefer-offline --unsafe-perm --no-optional
删除该选项修复了它。
【讨论】:
【参考方案5】:我注意到公共 github 存储库的此错误。删除条目always-auth = true
并能够继续。
【讨论】:
以上是关于NPM 安装导致 401 Unauthorized for private repo的主要内容,如果未能解决你的问题,请参考以下文章
Github 操作,使用 npm 或 yarn 安装 Github 包时出现 401 未授权
请求因HTTP状态401失败:Unauthorized 的原因?
在 Github Action 中通过 Yarn 从 Github 包注册表下载私有模块?发布工作,但安装遇到“401 Unauthorized”