谈谈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
相关推荐
超哥--3 小时前
B站视频内容智能分析系统(九):React 前端与管理面板
前端·react.js·前端框架
Cutecat_6 小时前
视频字幕处理工具横向:提取模式 vs 编辑模式,该如何选择
android·前端·ios·语音识别
qq_422152577 小时前
PDF 加水印工具怎么选?2026 年文档版权保护方案对比
前端·pdf·github
kyriewen7 小时前
手写 Promise.all、race、any:不到 30 行代码,解决并发异步的所有姿势
前端·javascript·面试
brucelee1868 小时前
OpenClaw 浏览器控制(Chrome MCP)完整教程
前端·chrome
ct9788 小时前
React 状态管理方案深度对比
开发语言·前端·react
胡志辉的博客8 小时前
深入浅出理解浏览器事件循环:从一道输出题讲到 Chrome 源码
前端·javascript·chrome·chromium·event loop
代码不加糖8 小时前
js中不会冒泡的事件有哪些?
前端·javascript·vue.js
懂懂tty9 小时前
Vue2与Vue3之间API差异
前端·javascript·vue.js
AI焦点9 小时前
跨越协议鸿沟:Tool Use状态机从Anthropic到OpenAI兼容体系的适配要点
前端·人工智能