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