前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >npm账户需要登录问题npm error probably out of date. To correct this please try logging in

npm账户需要登录问题npm error probably out of date. To correct this please try logging in

原创
作者头像
卓伊凡
修改2025-01-03 00:10:28
修改2025-01-03 00:10:28
11200
代码可运行
举报
文章被收录于专栏:node开发专栏node开发专栏
运行总次数:0
代码可运行

npm账户需要登录问题npm error probably out of date. To correct this please try logging in again with优雅草央千澈解决方案

问题背景

代码语言:javascript
代码运行次数:0
复制
npm error Incorrect or missing password.
npm error If you were trying to login, change your password, create an
npm error authentication token or enable two-factor authentication then
npm error that means you likely typed your password in incorrectly.
npm error Please try again, or recover your password at:
npm error     https://www.npmjs.com/forgot
npm error
npm error If you were doing some other operation then your saved credentials are
npm error probably out of date. To correct this please try logging in again with
:
npm error     npm login

今天研究一套代码遇到这个问题,提示是我需要登录npm账户,我还第一次遇到要求我登录npm账户的,说我账户密码不正确,因为这个代码他的前一个问题是

代码语言:javascript
代码运行次数:0
复制
npm warn old lockfile The package-lock.json file was created with an old version
 of npm,
npm warn old lockfile so supplemental metadata must be fetched from the registry
image
image

也就是 package-lock.json版本太低的问题,因此我执行 rm package-lock.json 删除了lock文件,再次执行npm install 遇到这个问题。 当我执行 npm whoami 可以查看当前npm账户,

代码语言:javascript
代码运行次数:0
复制
npm error code ENEEDAUTH
npm error need auth This command requires you to be logged in.
npm error need auth You need to authorize this machine using `npm adduser`
npm error A complete log of this run can be found in: C:\Users\Administrator\App
Data\Local\npm-cache\_logs\2025-01-01T13_57_12_652Z-debug-0.log

可是提示我没有登录账户,因此需要先添加账户npm adduser

解决方案

首先我们还是要理清一下关系,npm和node是什么关系

扩展知识:

npm(Node Package Manager)是Node.js的包管理器,它用于Node.js包的发布、传播和管理。npm提供了命令行工具,使得开发者可以方便地下载、安装、升级、删除包,同时也允许开发者发布自己编写的包。

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许在服务器端运行JavaScript代码,使得开发者可以使用JavaScript来编写后端服务。

简而言之,npm是Node.js生态系统中的一个重要组成部分,它为Node.js开发者提供了一种管理和分发代码包的方式。没有npm,Node.js的模块管理和包的分发会变得非常困难。

因此很明显是因为我们要去下载的这个依赖是被要求是要有登录npm账户的,因此我们先注册npm账户。

第一步注册npm账户

打开浏览器,访问https://www.npmjs.com/signup 点击右上角 sign up 注册账户

image
image

填写信息注册账户,

image
image

回到终端 开始执行 npm adduser 提示:

代码语言:javascript
代码运行次数:0
复制
$ npm adduser
npm notice Log in on https://registry.npmmirror.com/
Create your account at:
https://registry.npmmirror.com/-/v1/login/request/session/408d5ca8-cc7d-408e-b4db-643cd2b7adca
Press ENTER to open in the browser...

会直接打开浏览器,那么输入用户名,密码点登录

image
image
image
image

好吧 提示我没权限登录他们这个组织, 那就没办法了。

不甘心,不过我注意我是cnpm 我在想是不是因为我用的淘宝镜像,于是我切换镜像

先执行

npm uninstall -g cnpm 卸载cnpm,再执行 npm install -g npm

提示我版本不够高,需要大于22.9.0

nvm list

查看可用的node版本列表,选择23 再次执行

npm adduser

是有点区别让直接属于账户,密码,邮箱,而不是打开浏览器。

image
image

但是没区别的是还是没进去,于是我登录看看我的账户

提示我: You don’t have two-factor authentication (2FA) enabled on your account. Configure 2FA or visit our docs to learn more. 没有2fA认证!

image
image

然后我看到这里没有组织,我顺便添加个组织,这里提示,

image
image

暂时还是选免费方案。

image
image

提示邀请同事,我暂时跳过。

image
image

看样子已经成功创建了youyacaokeji的组织,于是我进行下一步,我去给账户来个2fa认证

image
image

看提示第一种很麻烦,要用nfc或者usb还有指纹识别都是需要硬件的,我们用第二种下载验证app

image
image

提示Authenticator我们去下载,(这个就是谷歌验证器)

image
image
image
image

完成绑定后输入动态验证码,并且这里提示你下载保存一份密钥文件,你就保存吧。

image
image

ok 组织也有了,个人账户2fa也认证了,我再试试

image
image

木哈哈哈,成功,完美解决,又是充实学习的一天,真好。

这里再继续更新——————2025年1月2日————————更新

来自知乎网友的评论带来了提醒,知乎浅色年华: “这问题本质有人说是项目根目录上带了.npmrc,里面包含了队友的凭证,被你下载下来安装了,就出现这问题。本身这个style-loader包是没啥问题的”

然后查阅资料,

扩展知识:

.npmrc 文件是 Node.js 包管理器(npm)的配置文件,它允许开发者存储一些全局或项目的特定配置选项,比如注册镜像地址、版本锁定或者其他 npm 命令的默认参数等。这个文件的主要作用是定义 npm 的配置选项,控制 npm 在安装、发布、更新和管理包时的行为,使开发者可以根据项目的需求来自定义 npm 的行为,以便更有效地管理依赖关系、提高安全性,或者加速包的下载速度。以下是关于该文件的相关信息:

.npmrc 文件的作用

  • 定义镜像源:可以切换不同的包管理源,如从 npm 官方源切换到淘宝镜像源,以提高包的下载速度。
  • 管理依赖的存储路径:指定全局安装的包存放的目录。
  • 保存开发依赖:自动保存使用 npm install install -D 安装的开发依赖到 package.jsondevDependencies 中。
  • 使用作用域包:将所有作用域包的下载路径指定到一个统一的目录。
  • 安全性:不要将敏感信息(如 auth token)直接存储在公开的代码库中,建议使用环境变量或 CI/CD 平台的秘密管理功能来管理这些信息。

.npmrc 文件的配置示例

代码语言:javascript
代码运行次数:0
复制
registry=https://registry.npmjs.org/
proxy=http://proxy.company.com:8080
https-proxy=https://proxy.company.com:8080
always-auth=true
ca=/path/to/ca.pem
auth-token=YOUR_AUTH_TOKEN
prefix=/usr/local

这样的话那肯定会对我们造成影响了,那我们直接删掉.npmrc重新执行 npm install 问题解决!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • npm账户需要登录问题npm error probably out of date. To correct this please try logging in again with优雅草央千澈解决方案
    • 问题背景
    • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档