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”

使用 Passport 进行 Laravel API 身份验证导致 401(未经授权)

401的自定义响应Lambda Authorizer

401 Unauthorized:由于凭据无效,访问被拒绝