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

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

使用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

相关文章:

  • [HackMyVM]靶场Crossbow
  • 港大新工作 HiGPT:一个模型,任意关系类型 !
  • Hana数据库 No columns were bound prior to calling SQLFetch or SQLFetchScroll
  • 谷歌seo营销服务有哪些服务?
  • Java ArrayList类
  • Share-ChatGPT官网UI/文件上传/联网搜索/GPTS 一并同步
  • 【408直通车】(考研数一、二、三合集)线性代数公式全覆盖
  • 自动驾驶-如何进行多传感器的融合
  • DMA知识
  • selenium元素定位--xpath定位--层级与逻辑组合定位
  • VUE3——reactive对比ref
  • 阿里云子域名配置,且不带端口访问
  • unity实现2D主角视野锥解决方案
  • 部标JT808车辆定位监控平台单服务器13.6万接入压力测试记录(附源码)
  • 面试题-Elasticsearch集群架构和调优手段(超全面)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • conda常用的命令
  • JavaScript DOM 10 - 滚动
  • Java应用性能调优
  • JS笔记四:作用域、变量(函数)提升
  • LeetCode29.两数相除 JavaScript
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python语法速览与机器学习开发环境搭建
  • React+TypeScript入门
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue UI框架库开发介绍
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 创建一个Struts2项目maven 方式
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 如何解决微信端直接跳WAP端
  • 深入浏览器事件循环的本质
  • 提醒我喝水chrome插件开发指南
  • 温故知新之javascript面向对象
  • #《AI中文版》V3 第 1 章 概述
  • #define 用法
  • #git 撤消对文件的更改
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (Ruby)Ubuntu12.04安装Rails环境
  • (二)fiber的基本认识
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)树状数组
  • (转载)深入super,看Python如何解决钻石继承难题
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .Net FrameWork总结
  • .net6Api后台+uniapp导出Excel
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @Documented注解的作用
  • [ JavaScript ] JSON方法
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作