谈谈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
相关推荐
怒放的生命199115 小时前
pnpm + Monorepo 使用教程(集成 Vue 3 项目)
前端·vue.js·pnpm·monorepo·前端工程化
佛系打工仔20 小时前
绘制K线第二章:背景网格绘制
android·前端·架构
明天好,会的1 天前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
C_心欲无痕1 天前
nginx - alias 和 root 的区别详解
运维·前端·nginx
我是苏苏1 天前
Web开发:C#通过ProcessStartInfo动态调用执行Python脚本
java·服务器·前端
无羡仙1 天前
Vue插槽
前端·vue.js
用户6387994773051 天前
每组件(Per-Component)与集中式(Centralized)i18n
前端·javascript
SsunmdayKT1 天前
React + Ts eslint配置
前端
开始学java1 天前
useEffect 空依赖 + 定时器 = 闭包陷阱?count 永远停在 1 的坑我踩透了
前端