nvm、nrm与pnpm

3,684 阅读3分钟

这是我参与更文挑战的第9天,活动详情查看: 更文挑战

介绍

相信很多工作中的前端兄弟们, 遭遇过诸多类似的问题:

  • node版本不匹配/冲突
  • 公司npm源和公共源频繁切换
  • 项目依赖下载慢/启动慢/打包慢

笔者学习并热爱着Python, 所以面对版本问题, 脑海中的第一反应就是虚拟环境和Conda

顺着这个思路找到了nvm, 紧接着认识了nrm

最后在npm/yarn/pnpm中认同了pnpm(但存在一点点坑)

nvm

一个node版本管理的工具, 地址为github.com/nvm-sh/nvm

windows版地址为github.com/coreybutler…

二者命令存在差别, 需要注意

nrm

在使用上和nvm极为相似, 但它是用来管理npm源的, 可以很方便的进行切换

地址为github.com/Pana/nrm

注意, 最新版的nrm在windows下会报错, 笔者推荐安装历史版本(下文会介绍实际使用流程)

pnpm

包管理工具之争, 这个就不再多说了, 有中文网地址www.pnpm.cn/

使用

使用nvm安装node

第一步, 最好将目前已安装的node进行卸载

第二步, 在上述官网中下载最新的安装包, 推荐使用安装版

第三步, 运行安装文件, 操作非常简单明了, 不再进行赘述

第四步, 查询当前可用的node版本, 我们以windows为例:

nvm list available

第五步, 安装指定的node版本:

nvm install 14.17.0

如果在这个过程中下载速度很慢或失败, 作者提供给了我们一个很简单的设置:

nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/

最后一步, 激活刚刚下载的node版本:

nvm use 14.17.0

如果想查看自己安装了哪些版本, 用nvm ls即可

这里简单说明下笔者遇到的问题, 在第一次安装成功后, npm命令无法使用

我的解决方案是卸载后将之前存在的nodejs文件夹删除并重新安装, 问题得到解决, 如果有兄弟们遇到相同的情况, 不妨先这样尝试一次

使用nrm管理npm源

nrm的安装就非常简单了:

npm install -g nrm@1.1.0

1.1.0版本在windows下可正常使用, 不会出现最新版本的问题

会用nvm后, nrm的操作基本可以如法炮制:

# 新增一个npm源
nrm add test http://my/npm/

# 查看已添加的npm源
nrm ls

# 切换npm源
nrm use test

# 删除npm源
nrm remove test

具体的命令在作者的Github仓库都有详细说明, 还是那句话, 官方文档大部分情况下优于一切

使用pnpm进行包管理

pnpm的安装和nrm一样:

npm install -g pnpm

包管理的操作都大同小异, 这里主要说明下笔者这个强迫症最满意的两点:

  • pnpm的依赖保存在同一位置, 项目下只是链接
  • pnpm的依赖结构不会进行平铺

在使用pnpm打包项目时, 遭遇了一个意外问题: 某些依赖丢失

在Github的Issues中我找到了相关解释, 就不进行翻译了, 直接贴上地址

总结

  • node版本管理是必须掌握的技能
  • 包管理工具还需要观望, 配合团队最重要, 不要特立独行