npm ERR! code E401 npm ERR! 密码不正确或缺失

63

我的Node版本为10.15.0,NPM版本为6.8.4。在将npm升级到14.16.0和npm升级到7.6.2之后运行npm install时,出现以下错误 -

npm ERR! code E401
npm ERR! Incorrect or missing password.
npm ERR! If you were trying to login, change your password, create an
npm ERR! authentication token or enable two-factor authentication then
npm ERR! that means you likely typed your password in incorrectly.
npm ERR! Please try again, or recover your password at:
npm ERR!     https://www.npmjs.com/forgot
npm ERR! 
npm ERR! If you were doing some other operation then your saved credentials are
npm ERR! probably out of date. To correct this please try logging in again with:
npm ERR!     npm login

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/xyz/.npm/_logs/2021-04-15T18_55_07_993Z-debug.log

2
在我的情况下,我通过在Azure DevOps中添加一个新的私有访问令牌来解决了这个问题。然后,我必须对它进行Base64编码并将其添加到.npmrc文件中...也许这种方法也可以帮助其他人。 - MikhailRatner
12个回答

69

2
是的,我完全忽略了那个。删除 package-lock.json 对我有用。谢谢! - user15650989
3
参见这个SO回答,了解删除package-lock.json可能存在的原因。 - derekbaker783
1
在我的情况下,我通过在Azure DevOps中添加一个新的私有访问令牌来解决了这个问题。然后我必须对其进行Base64编码并将其添加到.npmrc文件中。也许这种方法也能帮助其他人。 - MikhailRatner
你能解释一下这个问题的起因吗? - Slava Fomin II

11

在目录 C/Users/your-windows-username/ 中:

删除以下文件:

.cache
.package
.package-lock
.npmrc

之后,请进入您的项目,在终端中运行以下命令

npm i

我只找到了.cache文件,但是删除package-lock.json文件解决了问题。谢谢。我永远也不会想到这个解决方法。 - Steve Gelman
1
清除 .npmrc 对我有用 - Witold
小心清空你的.cache目录,因为它被pip和其他软件包管理器使用。 - jndietz

10

我在.npmrc中配置公司注册信息时遇到了同样的错误。

registry=https:<company-registry-url>

节点版本:19.1.0
NPM 版本:8.19.3

解决方案:

执行npm login

$ npm login
npm notice Log in on https:<registry-url>
Username: xxxx
Password:
Email: (this IS public) (xxxx)
Logged in as xxx on https:<registry-url>.

在这之后,.npmrc文件得到了更新

//<registry-url>/:_authToken=xxxxx

工作得很好,谢谢!我在Jfrog注册了一个名为npm artifactory的公司。 - yogender

4

.npmrc文件中的密码必须进行base64编码。复制和粘贴密码很容易出错,需要先将其进行base64编码。


2

最近在运行npm run dev时,我发现在不同项目上出现了同样的错误:

npm ERR! code E401
npm ERR! Incorrect or missing password.

我解决了这个问题的方法是删除 package-lock.json 文件 (任何可能与npm冲突的 yarn.lock 文件以及 node_modules 目录),然后使用 npm update 命令更新我的npm软件包。在更新npm软件包之前,你应该创建一个新的Git分支,并在该新分支中运行 npm update 命令。如果在更新后遇到更大的问题,则可以回退到之前的分支。
在npm软件包更新完成后,运行npm启动脚本 (例如 npm run dev) 时不再出现错误。
注意:你可以运行命令 npm outdated 查看哪些npm软件包需要更新。

2
如果您配置了您的`.npmrc`文件,可能是因为您的凭据已过期或需要新的凭据。请尝试使用`vsts-npm-auth -config .npmrc`命令。如果出现以下错误信息[输入不是有效的Base-64字符串,因为它包含一个非Base-64字符、超过两个填充字符或填充字符中有非法字符。],请尝试使用`vsts-npm-auth -config .npmrc -force`命令。这将生成新的凭据。

1
在我的情况下,我在处理Azure Artifacts feed时遇到了这个错误。通过在Azure DevOps中生成一个新的个人访问令牌(PAT),并在我的.npmrc文件中使用其Base64编码值,我成功解决了这个问题。

1

查看指定的日志文件(例如:/Users/xyz/.npm/_logs/2021-04-15T18_55_07_993Z-debug.log)。可能需要安装第三方或企业软件包时进行身份验证。

例如,如果尝试安装FontAwesome的pro图标且缺少身份验证(令牌),则会出现此错误。


这实际上帮了我,结果证明这正是我的问题(没有复制.npmrc文件),所以谢谢你! - DibsyJr

0

我也遇到了Node 16.x.x的同样问题。 我已经尝试了这个主题和这里提到的那些主题,但是没有任何帮助!

唯一帮助我登录的事情是,我删除了Node 16.x.x并从这里安装了Node 14.8.1 - https://nodejs.org/en/download/releases/


0
可能是由于 npm 上的一个 bug 引起的。我在使用 npm v7 时也遇到了这个问题。切换到 v6 后就解决了。
更多上下文请见:https://github.com/npm/cli/pull/2153

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接