当前位置: 首页 > news >正文

全网详解 .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按照如下顺序读取这些配置文件:

  1. 项目配置文件: /project/.npmrc

  2. 用户配置文件:~/.npmrc

我们可以通过如下命令,来获取.npmrc用户配置文件路径:

npm config get userconfig

如果想恢复默认配置,只需要将用户配置文件~/.npmrc删除即可。

  1. 全局配置文件:$PREFIX/etc/npmrc

我们可以通过如下命令,来获取.npmrc 全局配置文件路径$PREFIX

npm config get prefix

【注意】如果你不曾配置过全局文件,该文件不存在。

  1. npm内置配置文件/path/to/npm/npmrc

我们可以通过如下命令,获取npmrcnpm的路径:

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

  1. 设置项目配置文件

项目下.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
  1. 设置用户配置文件

可以直接通过如下命令:

npm config get userconfig

找到用户配置文件的路径,直接仿照上述方法修改该文件。

当然,也可以通过npm config set命令继续设置,如下所示:

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

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

npm config delete registry
  1. 设置全局配置文件

方法同设置用户配置文件一样,只不过在使用命令行时需要加上-g参数,如下所示:

npm config set registry https://registry.npm.taobao.org -g
  1. npm命令添加注册源选项

比如,临时使用淘宝镜像,如下所示:

npm --registry=https://registry.npm.taobao.org [npm命令]

又比如,使用npm安装依赖包,如下所示:

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

但不推荐用这种做法,更推荐设置项目配置文件.npmrc

4. 配置发布组件

npm配置组件发布的方式有如下两种:

  • 通过配置packege.json实现

  • 通过配置文件.npmrc实现

  1. package.json配置方式
# @aa是组件的scope。
# scope在模块名name中使用时,以@开头,后边跟一个/
{"name": "@aa/xxx", // 发布npm包的名字"version": "1.0.0", // 你的npm包版本"description": "xxxx", // 包的描述"main": "dist/btn.js", // 指定组件的主入口文件"publishConfig": {"registry": "要发布的私有仓库地址,然后在.npmrc配置用户名密码"}......
}
  1. .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是组件的scopescope在模块名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. 文章引言 今天在某低代码平台开发项目时&#xff0c;看到如下编译配置…...

从0开始学python -31

Python3 模块-1 在前面的几个章节中我们基本上是用 python 解释器来编程&#xff0c;如果你从 Python 解释器退出再进入&#xff0c;那么你定义的所有的方法和变量就都消失了。 为此 Python 提供了一个办法&#xff0c;把这些定义存放在文件中&#xff0c;为一些脚本或者交互…...

Jenkins的使用教程

介绍&#xff1a; Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 目的: 最重要目的就是把原来分散在各个机器上繁杂的工作全部…...

1.Maven的坐标和依赖

【maven坐标】1.groupId: 通常与域名反向一一对应2.artifactId: 通常使用实际项目名称3.version: 项目当前版本号4.packaging&#xff1a;maven项目的打包方式&#xff0c;默认是jar5.classifier: 定义构建输出的一些附属构件&#xff0c;例如&#xff1a;nexus-indexer-2.0.0.…...

Jenkins 笔记

Jenkins brew install jenkins-lts brew services restart jenkins-lts brew services stop jenkins-lts b999ff5683464346b6d083f894968121 l 软件构建自动化 &#xff1a;配置完成后&#xff0c;CI系统会依照预先制定的时间表&#xff0c;或者针对某一特定事件&#xff0c;…...

Python和Java语言,哪个更适合做自动化测试?

经常有测试新手问我&#xff1a;Python和Java语言&#xff0c;哪个更适合做自动化测试&#xff1f;本来想简单的回答一下的&#xff0c;但又觉得对不起大家对小编的信任。因此&#xff0c;小编今天专门写了一篇文章来回答这个问题。欢迎各位大佬补充~1、什么是自动化测试&#…...

互联网的路由选择协议

互联网的路由选择协议 文章目录互联网的路由选择协议路由选择协议的几个概念分层次路由选择协议内部网关协议RIP协议距离向量算法RIP协议的报文格式内部网关协议OSPFOSPF的报文格式✨OSPF的特点外部网关协议BGPBGP的报文格式参考本篇主要讨论的是路由表中的路由是如何得出来的。…...

接口幂等性处理

1.Token 机制&#xff1a; a首先客户端请求服务端&#xff0c;获取一个 token&#xff0c;每一次请求都获取到一个全新的 token&#xff08;当然这个 token 会有一个超时时间&#xff09;&#xff0c;将 token 存入 redis 中&#xff0c;然后将 token 返回给客户端。 b客户端…...

数字孪生智慧机场:透视数字化时代下的航空运营

在《智慧民航建设路线图》文件中&#xff0c;民航局明确指出&#xff0c;智慧机场是实现智慧民航的四个核心抓手之一。这一战略性举措旨在推进数字化技术与航空产业的深度融合&#xff0c;为旅客提供更加智能化、便捷化、安全化的出行服务&#xff0c;进一步提升我国民航发展的…...

SpringBoot 文件上传后查看404的问题和解决404后需要访问两次才能查看的问题

文件上传、图片上传的实现见这个&#xff1a; SpringBootVue 实现头像上传功能_Teln_小凯的博客-CSDN博客 在实现上面的功能后&#xff0c;发现查看图片的时候提示404&#xff0c;解决这个方法如下&#xff1a; 1、配置资源静态文件映射 第一个参数是页面请求的地址&#x…...

定时任务使用总结

定时任务表达式生成工具网站&#xff1a;https://cron.qqe2.com/定时任务选型&#xff1a;xxl-job 官方文档&#xff1a;https://www.xuxueli.com/xxl-job/安装定时任务调度中心 xxl-job-admin第一步、先导入xxl-job的数据库&#xff1a;地址&#xff1a;https://gitee.com/xux…...

Jira和Confluence Server版终止支持倒计时365天,企业应对策略汇总

本文对Atlassian最新的Server版政策进行了解读&#xff0c;并给出应对方案&#xff1b;同时我们也将国内热门的替代工具与jira进行了比较细致的对比&#xff0c;以及介绍替换的优惠政策等。今天是2023年2月15日&#xff0c;距离 Atlassian 旗下 Jira、Confluence 等系列产品中国…...

GEE学习笔记九十一:栅格影像叠置分析

最近发现好多人都在问一个问题&#xff0c;两张影像如何取其相交区域&#xff1f;其实这个问题简单来讲就是多张栅格影像进行叠加分析。在GEE中栅格影像不像矢量数据那样有直接的函数来做数据分析&#xff0c;需要我们自己手动写一些代码来实现这些操作。要实现这个功能有很多方…...

linux系统编程入门

一、搭建环境 1、安装 Linux 系统&#xff08;虚拟机安装、云服务器&#xff09; 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&#xff08;13&#xff09;HTTP协议一、HTTP请求1. 请求行2. 请求头3. 请求体二、HTTP响应1. 响应行2. 响应头三、设置HTTP响应四、模拟HTTP请求一、HTTP请求 1. 请求行 请求行独占一行。形式&#xff1a;请求方式 资源路径 协议版本号 GET /index.php HTTP/1.1 2. 请求…...

基于支持向量机 (SVM) 用php实现预测气温

Windows 10自带的天气应用有一个基于历史数据预测气温的功能&#xff0c;有一定的参考价值。那么如何去实现这一功能呢&#xff1f;本文采用php进行实现。 使用机器学习方法实现预测当日气温的算法需要涵盖许多的步骤&#xff0c;以下是一种基于支持向量机 (SVM) 的算法的简化…...

MySQL(五)

通过索引进行优化 索引基本知识 索引的优点 1、大大减少了服务器需要扫描的数据量2、帮助服务器避免排序和临时表3、将随机io变成顺序io 索引的用处 1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择&#xff0c;mysql通常会使用找到…...

Linux常用命令2

目录1.查找find&#xff08;1&#xff09;普通用法&#xff08;2&#xff09;组合用法2.xargs命令3.管道符4.查看文件内容(1)查看两个文件的差别&#xff1a;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…...

便民服务渠道智慧整合融通方案

便民服务渠道智慧整合融通方案 目录 第1章项目概述 7 1.1项目背景 7 1.2项目建设目标 7 1.2.1总体目标 8 1.2.2具体目标 8 1.3项目建设范围 9 1.3.1渠道整合范围 9 1.3.2业务覆盖范围 10 1.3.3系统建设范围 10 1.4项目建设意义 11 1.4.1对群众的意义 11 1.4.2对政府的意义 11 …...

GPTMessage项目拆解:SwiftUI+Combine集成OpenAI与Hugging Face API实战

1. 项目概述与核心价值最近在折腾一个挺有意思的Side Project&#xff0c;一个叫GPTMessage的iOS/macOS应用。简单来说&#xff0c;它把ChatGPT的聊天能力、DALLE的图像生成&#xff0c;还有Hugging Face上的一些模型&#xff08;比如图像描述、Stable Diffusion&#xff09;给…...

从Claude Code到nanocode:轻量级AI编程助手核心架构与工程实践

1. 项目概述&#xff1a;从Claude Code到nanocode的轻量化之路 如果你是一名开发者&#xff0c;尤其是对AI编程助手&#xff08;AI Agent&#xff09;的内部工作原理充满好奇&#xff0c;那么你很可能听说过Anthropic的Claude Code。它是一个功能强大的命令行AI代理&#xff0…...

别再死记硬背FIFO了!用Python模拟器带你亲手复现操作系统‘护航效应’

别再死记硬背FIFO了&#xff01;用Python模拟器带你亲手复现操作系统‘护航效应’ 操作系统中的进程调度算法是计算机科学的核心概念之一&#xff0c;但很多初学者在学习FIFO&#xff08;先进先出&#xff09;算法时&#xff0c;往往陷入死记硬背的困境。本文将带你通过Python模…...

【2026实测】直击算法底层逻辑:论文AI率太高?5款工具与3大手改技巧盘点

最近不少学弟学妹在后台跟我倒苦水&#xff0c;说查重率好不容易低了&#xff0c;结果AI率越改越高。眼看临近DDL&#xff0c;生怕又因为这个耽误答辩。 作为已经摸爬滚打出来的老学长&#xff0c;今天我就根据我总结出来的经验&#xff0c;从检测系统的底层逻辑开始讲起&…...

OpenClaw 长期使用避坑指南:环境稳定性维护、数据备份策略、版本兼容处理全方案

OpenClaw 长期使用避坑指南&#xff1a;环境稳定性维护、数据备份策略、版本兼容处理全方案引言OpenClaw 作为一款强大的开源自动化抓取与数据处理平台&#xff0c;因其灵活性、可定制性和社区支持&#xff0c;在众多领域如数据采集、RPA&#xff08;机器人流程自动化&#xff…...

嵌入式系统安全设计:挑战、原则与微内核实践

1. 嵌入式系统安全的设计挑战与核心原则在万物互联的时代背景下&#xff0c;嵌入式系统已从封闭的独立设备转变为网络化智能节点。这种转变带来了前所未有的安全挑战——根据工业安全机构的统计&#xff0c;2022年针对工业控制系统的网络攻击同比增加了87%&#xff0c;其中针对…...

主动悬架乘坐舒适性控制策略优化【附模型】

✨ 长期致力于随机路面、主动悬架、乘坐舒适性、控制策略、仿真分析研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;随机路面与1/4悬架动力学建模&…...

Bonsai工具库:函数式编程与代码设计模式实战解析

1. 项目概述&#xff1a;当代码遇见禅意最近在GitHub上闲逛&#xff0c;发现一个挺有意思的项目&#xff0c;叫sauravpanda/bonsai。光看名字&#xff0c;你可能以为这是个园艺或者艺术相关的仓库&#xff0c;但实际上&#xff0c;它是一个非常精巧的编程工具库。这个项目名“B…...

神经科学启发的边缘AI持续学习:从突触修剪到双记忆系统的架构设计

1. 项目概述&#xff1a;为什么我们需要一个“会学习”的边缘大脑&#xff1f;想象一下&#xff0c;你家里的扫地机器人&#xff0c;第一天它学会了绕过餐桌腿&#xff0c;第二天你搬来一把新椅子&#xff0c;它却一头撞了上去&#xff0c;然后彻底忘记了怎么绕过餐桌腿。这听起…...