谈谈nvm、nrm、pnpm的理解

谈一谈目前用的最多的也是主流的工具nvm、nrm以及pnpm的理解。

nvm

一般我们在公司开发,公司一般可能会有多个项目,可能有新项目也有老项目,不同的前端工程可能依赖的node版本不一样。这个时候就需要我们拥有多个node版本来开发不同的工程,如何安装多个node版本并可以随意的切换我们的node开发环境,这个时候nvm就能完美的发挥出自己的优势。nvm版本过低是不兼容vue3的项目的,我推荐1.1.11版本。当我下载好安装程序后

javascript 复制代码
1,下载之前,先 node -v 查看自己当前的node版本,记下来,然后开始卸载现在你的node(之前node有配环境变量的先清掉相关的环境变量,安装nvm了我们是可以
不用去配环境变量的会自动生成,如果是第一次安装node就不用管这些,也不用配环境变量非常方便。)
2,首先在D盘盘符下新建一个文件夹 nodeJS
3,然后开始nvm安装,安装过程中第一个路径选择是nvm的安装路径,建议选择D盘盘符下就行或者选择自己集中管理的软件文件夹。
4,第二个路径是安装nodejs的路径,选择上面我让你创建的那个nodeJS文件的路径
5, 下载完成之后,先查看版本进入 cmd窗口(以管理员身份进入),输入 nvm -v 查看版本
//相关的命令
nvm ls //查看node版本列表,及当前使用的版本
nvm install 【node版本号】//下载指定版本的node
nvm use 【你想要切换的node版本号】//切换你想使用的node版本

nrm

一般我们在一些公司可能是内网开发,公司也有自己的vpn,公司的项目中也可能安装一些私有的包,正常情况下我们的node的镜像源是指向taobao的,我们在安装依赖时正常的外网,一些公司私有的包我们是无法安装的,我们需要添加公司的指定的镜像源,并且能同时拥有多个镜像源,能切换使用,方便我们所需要的依赖包都能安装,这个时候nrm就能完美的发挥出自己的优势。

javascript 复制代码
npm install -g nrm //全局安装nrm
nrm ls  // 查看所有的源列表(有*号的表示当前所使用的源)
nrm add [name url] //添加自定义源(name是自定义源的名字,ulr是自定义源的url)
nrm use [name]  // 将npm下载源切换成指定的源
nrm del [name] //删除源

pnpm

随着越来越卷的前端环境,包管理工具也开始玩出了新花样,pnpm也越来越受到广大开发者的喜爱,pnpm相比npm也是有着不少的优势的,首先我们要知道npm包管理包的逻辑,我们一般在安装插件时,插件也有可能依赖别的插件,npm会将这些包拍扁全部安装到node_modules中,node_modules文件目录中结构就非常的乱,然后在大型项目多人开发中,有些插件可能并没有安装过,有些人却能引入(因为node_modules中有)然后使用,开发环境中完全没有影响(俗称幻影依赖),此时我们package.json中却并未声明,然而在项目打包上线后由于package.json中并未声明,这些插件自然获取不到(这其中还没有说到关联版本问题),就会有非常多的问题难以查找。而pnpm是以仓库的形式的管理这些包,package.json中声明过的插件会生成文件链接到仓库的资源,而这些文件不占用磁盘空间,而且没有声明过的插件引入时会报错,提示我们安装,这就会避免我们犯错。这也是pnpm越来越被广大开发者推荐使用的原因。

javascript 复制代码
npm install -g pnpm  
//全局安装pnpm就好了,后续使用起来和npm一样,命令中把npm改成pnpm
相关推荐
薛一半1 分钟前
React-Redux核心原理与容器组件实战
前端·javascript·react.js
做运维的阿瑞1 分钟前
自连接、交叉连接与复杂 JOIN:一条问题链讲透
前端·数据库·mysql
言乐612 分钟前
JavaScript概括前端原理
开发语言·前端·javascript·python·ecmascript
回眸&啤酒鸭38 分钟前
DeepSeek V4.1 Flash 批量处理实战指南
服务器·前端·javascript
用户33740969242639 分钟前
2026-09-27-Qwen-Image-2.1-1660Ti本地部署实战
前端
BIM云平台开发41 分钟前
DAZ里,如何保存现在姿势,如果调错了,可以重新导回
linux·服务器·前端·daz基础教程
传人42 分钟前
网页文字滚动效果如何做
前端·javascript·jquery
福兮说1 小时前
前后端算的 MD5、SHA-256 对不上?编码、换行、BOM、HMAC、JSON 顺序,八个原因逐个实测
前端·javascript·node.js·json·哈希算法
一木 之林1 小时前
DeepSeek Agent 开发
java·前端·人工智能
王霸天1 小时前
Three.js 模型体积优化:Draco/Meshopt 压缩与 DRACOLoader 配置的 4 个步骤
java·前端·javascript