npm install ,npm ERR code 401 Incorrect or missing password 错误原因与.npmrc 配置文件的使用

news/2024/5/4 23:56:10/文章来源:https://blog.csdn.net/weixin_56650035/article/details/127341087

前言:前端去维护项目时,通过 git clone 下来以后,经常是直接 npm install 去安装项目需要的 node_modules ,但是往往很多项目不是我们自己写的,或者从 GitHub 上面 clone 的开源项目,这个时候出现问题就很难处理,分享一下排查方案,做到知其然知其所以然!

 

 一、.npmrc 文件

  先聊一下 npmrc 的配置文件,方便我们下面排查问题!

 

  1. npmrc 的作用

   .npmrc ,可以理解为 npm running configuration ,npm 运行时的配置文件。我们知道 npm 最大的作用就是帮助开发者安装需要的依赖包,但是要从哪里下载?下载哪一个版本的包,把包下载到电的那个路径下?下载的是私有包的路径还是共有包的路径?我有一个私有包如何配置路径?

 

以上都是可以在 .npmrc 中进行配置

在设置 .npmrc 之前,我们需要知道:在你的电脑上,不止存在一个 .npmrc 文件,而是有多个。

我们在安装 npm 包的时候,npm 按以下顺序读取这些配置文件:

  1. 项目配置文件:就是上面截图看到的 .npmrc 文件,这个文件的作用只用于管理当前项目的 npm 安装;
  2. 用户配置文件:我们在用一个账户登录电脑的时候,我们可以为当前用户创建一个 .npmrc 文件,之后再用这个账户登录 ,就可以使用这个配置文件去 指定源下载,去使用这个配置文件。可以通过 npm config get userconfig 来获取文件位置;
  3. 全局配置文件:一台电脑可能有多个用户,在这些用户之上,可以设置一个公共的 .npmrc 文件,供所有用户使用。该文件的路径为:$PREFIX/etc/npmrc,使用 npm config get prefix 获取$PREFIX。如果你不曾配置过全局文件,该文件不存在。
  4. npm 内嵌配置文件:npm内置的配置文件,基本上个人是用不到的,无需太多关注; 

  2. 设置项目配置文件

    在项目的根目录下新建 .npmrc 文件,在里面以 key=value 的格式进行配置。比如要把npm的源配置为淘宝源,可以参考一下代码:

registry=https://registry.npm.taobao.org

 

  3. 设置用户配置文件

     你可以直接通过 npm config get userconfig 命令找到该文件的路径,然后直接仿照上述方法该文件,也可以通过 npm config set 命令继续设置,命令如下:

config set registry https://registry.npm.taobao.org

     如果想要删除一些配置,可以直接编辑.npmrc文件,也可以使用命令进行删除,比如:

npm config delete registry

 

  4. 设置全局配置文件

 方法和设置用户配置文件如出一辙,只不过在使用命令行时需要加上 -g 参数。

npm config set registry https://registry.npm.taobao.org -g

 以上就是关于 .npmrc 的一些常识,在开发过程,很少会配置该文件,不过接下来会讲到一种!不过在我们安装依赖出错的时候可以多一个思路,不至于一头雾水!


 

二、npm ERR code 401,错误分析

  1. 安装的是私有包,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 loginnpm ERR! A complete log of this run can be found in:
npm ERR!     D:\other\nodejs\node_cache\_logs\2022-10-15T13_22_01_878Z-debug-0.log

 大家可以看上图,我项目里面有 .npmrc 的项目配置文件,所以执行 npm install 的时候,默认就会读取我当前指定的下载位置,因为我项目需要下载 私有的 node_modules 所以,配置此路径;

错误原因: 私有包需要用户权限

解决方法: npm login 就可以,登录有权限的npm账户

 

2. npm ERR! Unable to authenticate, need Basic realm ="aliyun"

 但是此时报错的提示和上面有所差距,注意看 realm = “aliyun(阿里云)”

npm ERR! code E401
npm ERR! Unable to authenticate, need Basic realm ="aliyun"

   

 如果是下载私有包,要先检查是否登录

  ①  检查登录账户是否有下载私有包权限,一般私有包会提供 npm 账户以及密码;

  ②  不是下载私有包报错,把项目 registery 地址切换 为 npm.js.org 官方账户

npm install --registry https://registry.npmjs.org

3. 想要在 npm 上发布自己的 npm 包,执行 npm login 报错   

PS D:\Workspace\WebstormProjects\lhqm-ngzorro>  npm login
Username: qianmian
Password:
Email: (this IS public) 572298826@qq.com
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 loginnpm ERR! A complete log of this run can be found in:
npm ERR!     F:\Program_Files\QianDuan\nodejs\node_cache\_logs\2021-04-04T14_44_24_023Z-debug.log

错误原因:需要查看当前 npm 下载路径,上面有说过查看方式;淘宝镜像只支持下载,不支持上传发布;

解决方法:将配置的 registery 重新指向 npm 官方;

npm config set registry https://registry.npmjs.org/

  4. npm ERR! code ETARGET

  notarget No matching version found for uxcore@^1.0.23. 通过这句话我们可以大概明白,1.0.23 版本的 uxcore 这个包,没有在当前的npm 配置文件下载源中被找到;

  为什么会出现这个情况?

  我们首先要确认这个包是公有化的还是私有化的,很大几率是私有化的包,我们做 MultipleRepo 项目管理方式的时候,经常会用到 私有化的 npm 包,去做项目间依赖管理!

  确定好上面原因,我们在项目配置文件 -> .npmrc 去设置对应的 npm registery 就可以,从新执行 npm install 即可

PS E:\uxretail-ui> npm install
npm ERR! code ETARGET
npm ERR! notarget No matching version found for uxcore@^1.0.23.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.npm ERR! A complete log of this run can be found in:
npm ERR!     D:\other\nodejs\node_cache\_logs\2022-10-15T14_40_12_462Z-debug-0.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_23997.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ASM】字节码操作 转换已有的类 ClassReader 删除方法 添加方法

文章目录 1.概述2.案例2.1 删除方法2.2 添加方法2.3小总结3.总结1.概述 上一篇文章:【ASM】字节码操作 转换已有的类 ClassReader 修改字段信息 删除字段 增加字段 在上一篇文章中我们学到了如何添加字段与删除字段。 本章节我们来尝试修改方法和删除方法。 2.案例 2.1 删…

搜索查找类

查找搜索类\color{blue}{\huge{查找搜索类}}查找搜索类 find find指令从指定目录向下递归地便利各个子目录,如果在/root目录下进行寻找,根据文件目录的树状结构,就是进行全盘查找,非常浪费时间,所以使用find 进行寻找…

MATLAB | 绘图复刻(二) | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加

看到gzh R语言ggplot2科研绘图发布了一篇绘图复刻类文章,复刻了: Nature(IF49.962)文章(Gut microbiota modulates weight gain in mice after discontinued smoke exposure)其中的Figure.1b,绘制效果十分惊艳,手痒就想拿MATLAB也…

RocketMQ 消费者Rebalance算法 解析——图解、源码级解析

🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2022年10月15日 &#…

(附源码)计算机毕业设计大学生网上书店

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

(附源码)计算机毕业设计电脑外设销售系统小程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

操作系统基本功能(操作系统)

目录 一、处理机管理 二、存储器管理 三、设备管理 四、文件管理 五、作业管理 一、处理机管理 中央处理机(CPU)是计算机系统中一个举足轻重的资源。用户程序进入内存后,只有获得CPU,才能真正得以运行。 为了提高CPU的利用率…

前端都应该了解的 NodeJs 知识及原理浅析

node.js 初探 Node.js 是一个 JS 的服务端运行环境,简单的来说,它是在 JS 语言规范的基础上,封装了一些服务端的运行时对象,让我们能够简单实现非常多的业务功能。 如果我们只使用 JS 的话,实际上只是能进行一些简单…

docker mysql8使用SSL及使用openssl生成自定义证书

《docker安装MySQL8》 修改my.cnf vi /docker_data/mysql/conf/my.cnf[client] default-character-setutf8mb4 [mysql] default-character-setutf8mb4 [mysqld] character-set-serverutf8mb4 default_authentication_pluginmysql_native_password #增加ssl ssl保存&#xff0…

【让你从0到1学会c语言】文件操作

作者:喜欢猫咪的的程序员 专栏:《C语言》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 什么是文件: 我们为什么要使用文件呢? 文件分类&#x…

rbf神经网络和bp神经网络,rbf神经网络百度百科

1、rbf神经网络算法是什么? RBF神经网络算法是由三层结构组成,输入层至隐层为非线性的空间变换,一般选用径向基函数的高斯函数进行运算;从隐层至输出层为线性空间变换,即矩阵与矩阵之间的变换。 RBF神经网络进行数据运算时需要…

基于springboot的旅游打卡攻略分享小程序

💖💖作者:IT跃迁谷毕设展 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等。平常会做一些项目定制化开发…

预处理的补充知识

🏖️作者:malloc不出对象 ⛺专栏:《初识C语言》 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录一、宏的补充知识1.1 宏定义充当注释…

MABSA(Multimodal Aspect-Based Sentiment Analysis)2022ACL 预训练

大致浏览,没有细看。 论文题目(Title): Vision-Language Pre-Training for Multimodal Aspect-Based Sentiment Analysis 研究问题(Question):多模态情感分析 MABSA (Multimodal Aspectased S…

黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day14-面向对象进阶02

1、权限修饰符和代码块 1.1 权限修饰符 权限修饰符:是用来控制一个成员能够被访问的范围的。 可以修饰:成员变量、方法、构造方法、内部类。 巧计举例: private--------私有的----------相当于私房钱,只能自己用 默认--------…

LVS+KeepAlived高可用负载均衡集群

内容预知 1. 高可用群集的相关知识 1. 1 高可用(HA)群集与普通群集的比较 普通群集 高可用群集(HA) 1.2 KeepAlive 高可用方案 1.3 KeepAlived的体系模块 1.4 Keepalived实现原理 2. 高可用群集的脑裂现象及预防措施 2.1 高可用集群的脑裂现象及其…

树莓派学习笔记

记录一下树莓派的使用,包含操作系统、linux命令、python、硬件等知识。参考《树莓派开发实战》树莓派简介及型号 树莓派(Raspberry Pi)是一款基于 Linux 系统的、只有一张信用卡大小的卡片式计算机,树莓派已经成为基于 Linux 的低成本电脑和嵌入式计算机平台这个领域中的重…

Material UI – React (2022) 版的完整教程

Material UI – React (2022) 版的完整教程 这是关于 Material UI 的最期待的课程。该课程涵盖了 Material UI 的所有组件 课程英文名:Material UI - The Complete Guide With React (2022) Editio 此视频教程共5.5小时,中英双语字幕,画质…

【贝塞尔曲线拟合】

贝塞尔曲线拟合问题描述拟合曲线生成过程参考程序注意事项问题描述 已知一条n阶贝塞尔曲线L(P0,P1,P2,P3,...,Pn)L(P0, P1, P2, P3, ..., Pn)L(P0,P1,P2,P3,...,Pn)(P0P0P0为起点,P1P1P1为第一个控制点,P2P2P2为第二个控制点,P3P…

Mysql删除重复数据只保留一条

(1)以这张表为例: CREATE TABLE test (id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 注解id,name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 名字,PRIMARY KEY…