使用npm仓库的优先级以及.npmrc配置文件的使用

news2024/12/22 23:23:15

使用npm仓库的优先级以及.npmrc配置文件的使用

  • 概念
  • 如何设置 registry(包管理仓库)
    • 1. 设置项目配置文件
    • 2. 设置用户配置文件
    • 3. 设置全局配置文件
    • 4. `.npmrc`文件可以配置的常见选项

概念

npm(Node Package Manager)是一个Node.js的包管理器
它允许用户从npm仓库中查找、安装、升级和删除Node.js包和工具。
npm极大地简化了Node.js项目的依赖管理,使得开发者可以轻松地共享和重用代码。

.npmrc是一个配置文件
npmrc是Node.js软件包管理器(npm)的配置文件。它的主要作用是允许用户自定义npm的行为,以更好地管理项目依赖和开发流程。
这个配置文件由一系列键值对组成,用于配置npm在执行命令时的行为和参数。
例如,用户可以定义镜像源,提高依赖包的下载速度;也可以管理依赖的存储路径,实现依赖的统一管理。简而言之,npmrc是npm的一个辅助工具,用于配置和优化npm的工作流程。

Node.js则是一个基于Chrome V8引擎的JavaScript运行环境
它由Ryan Dahl于2009年5月开发,发布后迅速成为服务端JavaScript开发的流行平台。
Node.js使用了一个事件驱动、非阻塞式I/O模型,这使得它能够处理大量的并发连接,非常适合构建网络应用。此外,Node.js还提供了一些替代的API,对一些特殊用例进行优化,使得V8在非浏览器环境下运行得更好。

在我们安装包的时候,npm 按照如下顺序读取这些配置文件(优先级低到高

  • 全局配置文件:这个配置文件存在于Node的全局配置目录中。
    在Windows系统中,它的路径通常是$PREFIX/etc/.npmrc;
    在Mac系统中,路径则是%APPDATA%/etc/.npmrc。
  • 用户配置文件:这个配置文件存在于用户主目录中。
    在Windows系统中,它的路径是%USERPROFILE%/.npmrc;
    在Mac系统中,路径则是$HOME/.npmrc。
  • 项目配置文件:这个配置文件存在于项目的根目录下。(优先级最高
    项目配置文件具有最高的优先级,它会覆盖用户配置文件和全局配置文件的设置。

如何设置 registry(包管理仓库)

1. 设置项目配置文件

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

内容如下:

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

位置如下
在这里插入图片描述

2. 设置用户配置文件

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

3. 设置全局配置文件

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

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

4. .npmrc文件可以配置的常见选项

  • registry:指定npm的包管理仓库地址。可以用于切换不同的包管理源,例如,从npm官方源切换到淘宝镜像源,以提高包的下载速度
 registry=https://registry.npmjs.org/
  • proxy:设置代理服务器,用于加速包的下载。这对于在受限网络环境下工作的开发者特别有用。
 proxy=http://proxy.example.com/
  • https-proxy:与proxy类似,但用于HTTPS请求的代理。
https-proxy=https://proxy.example.com/
  • prefix:定义全局安装包的目录。默认情况下,全局包将安装在/usr/local(Linux)或C:\Users\<username>\AppData\Roaming\npm(Windows)下。
  prefix=/path/to/global/packages
  • save-exact:设置依赖包的版本是否应该精确匹配,而不是使用语义版本控制(Semver)。
save-exact=true
  • strict-ssl:控制是否严格验证SSL证书,对于内部网络或不安全的环境可以将其禁用,但不建议在生产环境中使用。
 strict-ssl=false
  • ignore-scripts:禁用包安装过程中运行的脚本,有时可用于提高安全性。
 ignore-scripts=true
  • authToken:用于认证的令牌,允许无需用户名和密码即可访问私有npm仓库。
 _authToken=your-auth-token
  • userconfig:指定用户级别的配置文件路径,用于覆盖全局配置。
userconfig=/path/to/custom/user-config-file
  • cache:设置npm包的缓存目录,可以加快包的查找速度和减少下载次数。
cache=/path/to/npm/cache
  • production:指示npm只安装生产依赖包。在部署生产环境时,这可确保不会安装开发依赖包。
production=true
  • loglevel:设置npm的日志级别,以控制输出的详细程度。
 loglevel=warn

参考:
【1】深入理解 .npmrc 文件
https://blog.csdn.net/m0_73531461/article/details/136397088

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PanTools v1.0.17 多网盘批量管理 批量分享、转存、复制...

软件介绍 一款针对多个热门网盘的文件管理、批量分享、批量转存、批量复制、批量重命名、批量链接检测、跨账号移动文件、多账号文件搜索等&#xff0c;支持不同网盘的不同账号的资源文件操作。适用于网站站长、资源爱好者等&#xff0c;对于管理名下具有多个网盘多个账号具有…

CSS 实现毛玻璃效果 | backdrop-filter与filter的区别

CSS 毛玻璃效果是一种使用 CSS 创建的视觉效果&#xff0c;可以使元素或区域呈现出模糊或半透明的外观&#xff0c;就像毛玻璃一样。 示例&#xff1a; <div class"container"><div class"textHolder"><p>glass</p></div>…

gitee多用户配置

一、引言 在工作的时候我们有时候会自己创建项目Demo来实现一些功能&#xff0c;但是又不想把自己的Demo代码放到公司的仓库代码平台&#xff08;gitee&#xff09;中管理&#xff0c;于是就是想自己放到自己的Gitee中管理&#xff0c;于是就需要配置Git多用户。 本文将配置分别…

论文篇05-论文范文-论数据访问层设计技术及其应用(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

试题:论数据访问层设计技术及其应用 在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清晰,便于提高复用能力和产品维护能力。一种常见的层次划分模型是将信息系统分…

谷粒商城——缓存——SpringCache

1. 配置使用 首先需要导入相关的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency> 随后在配置文件中进行配置&#xff1a; spring:cache:t…

Web CSS笔记2

目录 1、背景 ①、背景图片(image) ②、背景平铺&#xff08;repeat&#xff09; ③、背景位置(position) ④、背景附着&#xff08;attachment&#xff09; ⑤、背景透明(CSS3) ⑥、背景图片缩放大小&#xff08;size&#xff09;&#xff1a; ⑦、背景简写 2、标签显…

Netty源码剖析——ChannelHandlerContext 篇(三十七)

ChannelHandlerContext 作用及设计 ChannelHandlerContext 继承了出站方法调用接口和入站方法调用接口 ChannelOutboundInvoker 和 ChannelInboundInvoker 部分源码 这两个invoker就是针对入站或出站方法来的&#xff0c;就是在入站或出站 handler 的外层再包装一层&#xff0c…

C语言文件操作(详细)

⽬录 一. 为什么使⽤⽂件&#xff1f; 二. 什么是⽂件&#xff1f; 三. ⼆进制⽂件和⽂本⽂件&#xff1f; 四. ⽂件的打开和关闭 五. ⽂件的顺序读写 六. ⽂件的随机读写 七. ⽂件读取结束的判定 八. ⽂件缓冲区 一. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#…

线性数据结构----(数组,链表,栈,队列,哈希表)

线性数据结构 数组链表栈使用场景 队列应用场景 哈希表特点哈希函数&#xff0c;哈希值&#xff0c;哈希冲突键值对 Entry 开放寻址法和拉链法 参考文档 数组 数组(Array) 是一种很常见的数据结构。由相同类型的元素组成&#xff0c;并且是使用一块连续的内存来存储的。 在数组…

【idea快捷键】idea开发java过程中常用的快捷键

含义win快捷键mac快捷键复制当前行或选定的代码块Ctrl DCommand D通过类名快速查找类Ctrl NCommand N通过文件名快速查找文件Ctrl Shift NCommand Shift N通过符号名称快速查找符号&#xff08;类、方法等&#xff09;Ctrl Alt Shift NCommand Shift O跳转到声明C…

Ps:必须知道的四大混合模式

在 Photoshop 中有多达六组 27 种混合模式&#xff0c;不仅可应用于图层之间&#xff0c;在画笔等工具、图层样式等里面也都有&#xff0c;几乎可以说是无处不在。 有关混合模式的原理及说明&#xff0c;请参阅&#xff1a; 《Ps 混合模式&#xff08;合集&#xff09;》 在所有…

VGG16神经网络搭建

一、定义提取特征网络结构 将要实现的神经网络参数存放在列表中&#xff0c;方便使用。 数字代表卷积核的个数&#xff0c;字符代表池化层的结构 cfgs {"vgg11": [64, M, 128, M, 256, 256, M, 512, 512, M, 512, 512, M],VGG13: [64, 64, M, 128, 128, M, 256, …

机器学习:数据降维主成分分析PCA

一、引言 1.数据分析的重要性   在当今的信息爆炸时代&#xff0c;数据已经渗透到各个行业和领域的每一个角落&#xff0c;成为决策制定、科学研究以及业务发展的重要依据。数据分析则是从这些数据中提取有用信息、发现潜在规律的关键手段。通过数据分析&#xff0c;我们能够…

第44期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

elementui的table根据是否符合需求合并列

<el-table :data"tableData" border style"width: 100%;" :span-method"objectSpanMethodAuto"><!-- 空状态 --><template slot"empty"><div><img src"/assets/images/noData.png" /></di…

【双指针】Leetcode 查找总价格为目标值的两个商品

题目解析 LCR 179. 查找总价格为目标值的两个商品 本题很友好&#xff0c;只需要返回任意一个 算法讲解 这道题很显然就是使用对撞双指针&#xff0c;一个从左边&#xff0c;一个从右边&#xff0c;两边进行和target比较来移动 代码编写 class Solution { public:vector<…

我的创作纪念日 ---- 2024/3/26

前言 2024.3.26是我在CSDN成为创作者的第128天&#xff0c;也是我第一次真正在网上创作的第128天 当我还在日常创作时&#xff0c;突然发现我收到了一封信 我想我可以分享一下这段时间的感想以及收获 机缘 在CSDN的这段时间里&#xff0c;我学习到了很多知识&#xff0c;也…

字节跳动开源视频生成模型:AnimateDiff-Lightning视频生成加速十倍

前言 在近日&#xff0c;字节跳动再次引领AI视频生成领域的革新&#xff0c;推出了其最新研究成果——AnimateDiff-Lightning模型。这款开源的文本到视频生成模型&#xff0c;以其令人惊叹的生成速度和卓越的生成质量&#xff0c;标志着视频生成技术的一个重大突破&#xff0c…

两区域二次调频风火机组,麻雀启发式算法改进simulink与matlab联合

区域1结果 区域2结果 红色曲线为优化后结果〔风火机组二次调频〕

机器人机械手加装SycoTec 4060 ER-S电主轴高精密铣削加工

随着科技的不断发展&#xff0c;机器人技术正逐渐渗透到各个领域&#xff0c;展现出前所未有的潜力和应用价值。作为机器人技术的核心组成部分之一&#xff0c;机器人机械手以其高精度、高效率和高稳定性的优势&#xff0c;在机械加工、装配、检测等领域中发挥着举足轻重的作用…