全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等
文章目录
- 1. 文章引言
- 2. 简述.npmrc
- 3. 配置.npmrc
- 3.1 .npmrc配置文件的优先级
- 3.2 .npmrc设置的命令行
- 3.3 如何设置.npmrc
- 4. 配置发布组件
- 5. npm常用命令
- 6. 重要备注
- 6.1 yarn
- 6.2 scope命名空间
- 6.3 镜像出错
1. 文章引言
今天在某低代码平台开发项目时,看到如下编译配置的弹出框:

注意红框中的.npmrc这个词,它是什么意思呢,以及如何设置.npmrc呢?
接下来,我便详细解说.npmrc这个词,以及如何设置.npmrc。
2. 简述.npmrc
.npmrc可以理解成npm running cnfiguration,即npm运行时配置文件。
简单点说,.npmrc可以设置package.json中依赖包的安装来源,即从哪里下载依赖包。
3. 配置.npmrc
3.1 .npmrc配置文件的优先级
一般情况下,我们的电脑中有多个.npmrc文件,我们在安装包时,npm按照如下顺序读取这些配置文件:
-
项目配置文件:
/project/.npmrc -
用户配置文件:
~/.npmrc
我们可以通过如下命令,来获取.npmrc用户配置文件路径:
npm config get userconfig
如果想恢复默认配置,只需要将用户配置文件~/.npmrc删除即可。
- 全局配置文件:
$PREFIX/etc/npmrc
我们可以通过如下命令,来获取.npmrc 全局配置文件路径$PREFIX:
npm config get prefix
【注意】如果你不曾配置过全局文件,该文件不存在。
npm内置配置文件/path/to/npm/npmrc
我们可以通过如下命令,获取npmrc在npm的路径:
which npm
与npm同级别, 使用which npm获取npm的路径。
3.2 .npmrc设置的命令行
在讲解如何设置.npmrc之前,我们需要了解设置文件的命令行。
我们一般使用key-value的方式来设置文件,如下所示:
npm config set key value
例如,设置仓库信息,可以使用下述命令行:
npm config set registry https://repo.huaweicloud.com/repository/npm/
3.3 如何设置.npmrc
- 设置项目配置文件
项目下.npmrc文件的优先级最高,可以给每个项目配置不同的镜像,项目之间的配置互不影响。
在项目的根目录下新建.npmrc文件,在里面以key=value的格式进行配置。
registry=https://registry.npm.taobao.org
也可以指定特殊的命名空间(scope)的来源。
比如,以@testNpmRc开头的包从registry=https://npm.xx.com这里下载,其余全去淘宝镜像下载。
registry=https://registry.npm.taobao.org/
@testNpmRc:registry = https://npm.xx.com
- 设置用户配置文件
可以直接通过如下命令:
npm config get userconfig
找到用户配置文件的路径,直接仿照上述方法修改该文件。
当然,也可以通过npm config set命令继续设置,如下所示:
npm config set registry https://registry.npm.taobao.org
如果想要删除一些配置,可以直接编辑.npmrc文件,也可以使用命令进行删除,例如:
npm config delete registry
- 设置全局配置文件
方法同设置用户配置文件一样,只不过在使用命令行时需要加上-g参数,如下所示:
npm config set registry https://registry.npm.taobao.org -g
- 给
npm命令添加注册源选项
比如,临时使用淘宝镜像,如下所示:
npm --registry=https://registry.npm.taobao.org [npm命令]
又比如,使用npm安装依赖包,如下所示:
npm install --registry https://registry.npmjs.org
但不推荐用这种做法,更推荐设置项目配置文件.npmrc。
4. 配置发布组件
npm配置组件发布的方式有如下两种:
-
通过配置
packege.json实现 -
通过配置文件
.npmrc实现
package.json配置方式
# @aa是组件的scope。
# scope在模块名name中使用时,以@开头,后边跟一个/
{"name": "@aa/xxx", // 发布npm包的名字"version": "1.0.0", // 你的npm包版本"description": "xxxx", // 包的描述"main": "dist/btn.js", // 指定组件的主入口文件"publishConfig": {"registry": "要发布的私有仓库地址,然后在.npmrc配置用户名密码"}......
}
.npmrc配置方式
# package.json不做任何仓库的配置:
{"name": "@aa/xxx", // 发布npm包的名字"version": "1.0.0", // 你的npm包版本"description": "xxxx", // 包的描述"main": "dist/btn.js", // 指定组件的主入口文件......
}# .npmrc配置仓库地址和用户名密码:
@aa:registry=私仓地址
配置好仓库信息后,执行如下发布命令,即可将打包好的组件发布到仓库中:
npm publish
5. npm常用命令
npm config set <key> <value> [-g|--global] //给配置参数key设置值为value;
npm config get <key> //获取配置参数key的值;
npm config delete <key> [-g|--global] //删除置参数key及其值;
npm config list [-l] //显示npm的所有配置参数的信息;
npm config edit //编辑用户配置文件
npm get <key> //获取配置参数 key 生效的值;
npm set <key> <value> [-g|--global] //给配置参数key设置值为value;
6. 重要备注
6.1 yarn
yarn会读取.npmrc的配置文件,所以不必为yarn再设置一次。
6.2 scope命名空间
上文提到的指定特殊的命名空间(scope)的来源,如下代码所示:
@aa:registry=https://repo.huaweicloud.com/repository/npm/
其中,@aa是组件的scope,scope在模块名name中使用时,以@开头,比如:
# 在package.json的dependencies标签中加上即可使用。
"dependencies": {"@test/mypackage": "^1.3.0"
}
6.3 镜像出错
.npmrc文件配置了私有包registry源,但是当前的下载源是淘宝镜像,可能会报如下错误:
error Command failed with exit code 1
可以将当前的下载源改成私有包registry源,如果改了之后还报错,可以尝试将lock文件,或者node_modules文件删掉,重新开始下载。
相关文章:
全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等
文章目录1. 文章引言2. 简述.npmrc3. 配置.npmrc3.1 .npmrc配置文件的优先级3.2 .npmrc设置的命令行3.3 如何设置.npmrc4. 配置发布组件5. npm常用命令6. 重要备注6.1 yarn6.2 scope命名空间6.3 镜像出错1. 文章引言 今天在某低代码平台开发项目时,看到如下编译配置…...
从0开始学python -31
Python3 模块-1 在前面的几个章节中我们基本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。 为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互…...
Jenkins的使用教程
介绍: Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 目的: 最重要目的就是把原来分散在各个机器上繁杂的工作全部…...
1.Maven的坐标和依赖
【maven坐标】1.groupId: 通常与域名反向一一对应2.artifactId: 通常使用实际项目名称3.version: 项目当前版本号4.packaging:maven项目的打包方式,默认是jar5.classifier: 定义构建输出的一些附属构件,例如:nexus-indexer-2.0.0.…...
Jenkins 笔记
Jenkins brew install jenkins-lts brew services restart jenkins-lts brew services stop jenkins-lts b999ff5683464346b6d083f894968121 l 软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,…...
Python和Java语言,哪个更适合做自动化测试?
经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?本来想简单的回答一下的,但又觉得对不起大家对小编的信任。因此,小编今天专门写了一篇文章来回答这个问题。欢迎各位大佬补充~1、什么是自动化测试&#…...
互联网的路由选择协议
互联网的路由选择协议 文章目录互联网的路由选择协议路由选择协议的几个概念分层次路由选择协议内部网关协议RIP协议距离向量算法RIP协议的报文格式内部网关协议OSPFOSPF的报文格式✨OSPF的特点外部网关协议BGPBGP的报文格式参考本篇主要讨论的是路由表中的路由是如何得出来的。…...
接口幂等性处理
1.Token 机制: a首先客户端请求服务端,获取一个 token,每一次请求都获取到一个全新的 token(当然这个 token 会有一个超时时间),将 token 存入 redis 中,然后将 token 返回给客户端。 b客户端…...
数字孪生智慧机场:透视数字化时代下的航空运营
在《智慧民航建设路线图》文件中,民航局明确指出,智慧机场是实现智慧民航的四个核心抓手之一。这一战略性举措旨在推进数字化技术与航空产业的深度融合,为旅客提供更加智能化、便捷化、安全化的出行服务,进一步提升我国民航发展的…...
SpringBoot 文件上传后查看404的问题和解决404后需要访问两次才能查看的问题
文件上传、图片上传的实现见这个: SpringBootVue 实现头像上传功能_Teln_小凯的博客-CSDN博客 在实现上面的功能后,发现查看图片的时候提示404,解决这个方法如下: 1、配置资源静态文件映射 第一个参数是页面请求的地址&#x…...
定时任务使用总结
定时任务表达式生成工具网站:https://cron.qqe2.com/定时任务选型:xxl-job 官方文档:https://www.xuxueli.com/xxl-job/安装定时任务调度中心 xxl-job-admin第一步、先导入xxl-job的数据库:地址:https://gitee.com/xux…...
Jira和Confluence Server版终止支持倒计时365天,企业应对策略汇总
本文对Atlassian最新的Server版政策进行了解读,并给出应对方案;同时我们也将国内热门的替代工具与jira进行了比较细致的对比,以及介绍替换的优惠政策等。今天是2023年2月15日,距离 Atlassian 旗下 Jira、Confluence 等系列产品中国…...
GEE学习笔记九十一:栅格影像叠置分析
最近发现好多人都在问一个问题,两张影像如何取其相交区域?其实这个问题简单来讲就是多张栅格影像进行叠加分析。在GEE中栅格影像不像矢量数据那样有直接的函数来做数据分析,需要我们自己手动写一些代码来实现这些操作。要实现这个功能有很多方…...
linux系统编程入门
一、搭建环境 1、安装 Linux 系统(虚拟机安装、云服务器) https://releases.ubuntu.com/bionic/ 2、安装 XSHELL、XFTP https://www.netsarang.com/zh/free-for-home-school/ 3、安装 visual studio code https://code.visualstudio.com/ 4、Linu…...
JS代码安全防护常见的方式
文章目录1. 常量的混淆1.1 十六进制字符串1.2 unicode字符串1.3 字符串的ASCII码混淆1.4 字符串常量加密1.5 数值常量加密2. 增加逆向分析难度2.1 数组混淆2.2 数组乱序2.3 花指令2.4 jsfuck3. 代码执行流程的防护3.1 流程平坦化3.2 逗号表达式4. 其他代码防护方案4.1 eval加密…...
PHP(13)HTTP协议
PHP(13)HTTP协议一、HTTP请求1. 请求行2. 请求头3. 请求体二、HTTP响应1. 响应行2. 响应头三、设置HTTP响应四、模拟HTTP请求一、HTTP请求 1. 请求行 请求行独占一行。形式:请求方式 资源路径 协议版本号 GET /index.php HTTP/1.1 2. 请求…...
基于支持向量机 (SVM) 用php实现预测气温
Windows 10自带的天气应用有一个基于历史数据预测气温的功能,有一定的参考价值。那么如何去实现这一功能呢?本文采用php进行实现。 使用机器学习方法实现预测当日气温的算法需要涵盖许多的步骤,以下是一种基于支持向量机 (SVM) 的算法的简化…...
MySQL(五)
通过索引进行优化 索引基本知识 索引的优点 1、大大减少了服务器需要扫描的数据量2、帮助服务器避免排序和临时表3、将随机io变成顺序io 索引的用处 1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到…...
Linux常用命令2
目录1.查找find(1)普通用法(2)组合用法2.xargs命令3.管道符4.查看文件内容(1)查看两个文件的差别:diff file1 fille2(2)正序查看文件内容cat(3)倒序查看文件内容tac(4)分页查看文件内容more(5)分页查看文件内容less(6)…...
『C/C++养成计划』Visual Studio Code编辑器配置(外观通用型扩展Minmal)
Visual Studio Code编辑器配置(外观&通用型扩展&Minmal)! 文章目录 一. vscode配置外观|通用型扩展1.1. 色彩主题配置扩展(GitHub Theme)1.2. 图标主题扩展(Material Icon Theme)1.3. 代码高亮扩展(better-comments)1.4. 错误警告扩展(error lens)1.5. 执行代码扩展(c…...
半导体晶圆测量中的5大常见误区:从台阶仪到无图晶圆系统的避坑指南
半导体晶圆测量中的5大常见误区:从台阶仪到无图晶圆系统的避坑指南 在半导体制造领域,晶圆测量是确保器件性能与良率的关键环节。然而,即使是经验丰富的工程师,也常因忽视某些细节而陷入测量陷阱。本文将揭示五个最具隐蔽性的操作…...
基于comsol的三相电力变压器电磁场与电路耦合计算的电压电流及磁通密度分布分析
comsol三相电力变压器电磁场和电路耦合计算,可以得到变压器高低压绕组电压电流分布以及变压器磁通密度分布三相电力变压器建模这事儿,说难不难说简单也不简单。前两天用COMSOL折腾了个带电路耦合的模型,顺手把绕组电流分布和铁芯磁通都摸清楚…...
从巨鲸到万物生长:Claude Code如何颠覆AI开发,带你从对话走向Agent平台搭建!
Claude Code凭借其六大核心能力,将AI开发带入全新阶段。通过CLAUDE.md实现项目记忆增强,Skills固化可复用工作流,Sub-Agent处理专业化任务,MCP连接外部服务,Plug-In打包完整解决方案。本文深入解析这些功能,…...
一文搞懂训练大模型的数据怎么准备!
谈到大模型,很多人第一反应都是模型参数大、算力强,但其实数据才是大模型真正的底座。没有足够大、足够干净的数据,再先进的模型也发挥不出威力。今天就从数据层面,把大模型训练的几个关键环节梳理清楚。 数据采集与清洗 大模型训…...
基于Spring AI的MCP服务开发实战指南
1. Spring AI与MCP服务初探 第一次接触Spring AI框架时,我就被它简洁优雅的API设计所吸引。作为Spring生态中专门为AI应用开发提供的工具集,它让Java开发者能够像开发普通Web应用一样轻松构建AI服务。而MCP(Model Calling Protocol࿰…...
西门子S7-1200 PLC如何通过EtherCat转Profinet网关实现高效IO控制?5步搞定配置
西门子S7-1200 PLC与EtherCat设备的高效集成:5步实现Profinet网关配置 在工业自动化领域,不同协议设备之间的无缝通信一直是工程师面临的挑战。当您需要将EtherCat设备接入西门子S7-1200 PLC的Profinet网络时,协议转换网关成为关键桥梁。本文…...
STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常?(附完整初始化流程图)
STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常? 最近在调试STC15W4K32S4的PWM功能时,发现不少开发者都会遇到一些共性问题:明明按照手册配置了寄存器,PWM输出就是不稳定或者干脆没有波形。这些问题往往源于几…...
终极指南:如何在Windows电脑上直接安装Android应用
终极指南:如何在Windows电脑上直接安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款专为Windows系统设计的Android应用安…...
MCP开发环境搭建全攻略(VS Code插件安装避坑白皮书·2024官方认证版)
第一章:MCP开发环境搭建全攻略(VS Code插件安装避坑白皮书2024官方认证版)前置依赖检查与系统准备 在安装任何 MCP 相关插件前,请确保已安装以下基础组件:VS Code 1.85(推荐 1.87.2)、Node.js 1…...
飞行器设计避坑指南:盘点那些影响气动效率的‘隐形杀手’(从摩擦阻力到干扰阻力)
飞行器设计避坑指南:盘点那些影响气动效率的‘隐形杀手’ 记得第一次参加大学生飞行器设计竞赛时,我们的团队花了整整三个月打造了一架翼展两米的固定翼无人机。试飞当天,看着它摇摇晃晃地起飞,却在爬升阶段突然失速坠毁ÿ…...
