cnpm

  • 为解决国内用户连接 npm registry 缓慢的问题,淘宝搭建了自己的 registry 即淘宝 npm 镜像源(大约 10分钟 同步一次);

  • 过去 npm 没有提供修改 registry 的功能,因此淘宝提供了一个 CLI 工具即 cnpm ,它支持除了 npm publish 以外的所有命令,只不过连接的是淘宝镜像源;

  • 如今 npm 已经支持修改 registry 了,可能 cnpm 唯一的作用就是和 npm 共存,即如果要使用官方源,则使用 npm ,如果使用淘宝源,则使用 cnpm

nvm

  • nvm 并非包管理器,它是用于管理多个 node 版本的工具;

  • 在实际的开发中,可能会出现多个项目分别使用的是不同的 node 版本,在这种场景下,管理不同的 node 版本就显得尤为重要;

  • nvm 就是用于切换版本的一个工具;

下载和安装

  1. 最新版 下载地址

  2. 下载 nvm-setup.zip 后,直接安装;

使用 nvm

为了加快下载速度,建议设置淘宝镜像

# 查看当前本机使用 nvm 已安装的 nodejs 的版本列表
nvm list

# 查看当前本机是 32 bit 还是 64 bit
nvm arch

# 安装指定版本的 nodejs
nvm install node@版本号

# 安装最新版本的 nodejs
nvm install latest

# 安装 14.15.1 版本的 nodejs
nvm install 14.15.1

# 卸载指定版本的 nodejs
nvm uninstall node@版本号

# 卸载 14.15.1 版本的 nodejs
nvm uninstall 14.15.1

# 使用指定版本的 nodejs(该版本是已经安装过后的)
nvm use node@版本号

# 使用已安装的 14.15.1 版本的 nodejs
nvm use 14.15.1

# 查看本机安装的 nvm 的安装目录地址
nvm root

pnpm

  1. pnpm 是一种新起的包管理器,从 npm 的下载量看,目前还没有超过 yarn ,但它的实现方式值得主流包管理器学习,某些开发者极力推荐使用 pnpm

  2. 它具有以下优势:

    • 目前,安装效率高于 npmyarn 的最新版;
    • 极其简洁的 node_modules 目录;
    • 避免了开发时使用间接依赖的问题;
    • 能极大的降低磁盘空间的占用;

安装和使用

  1. 全局安装 pnpm

    npm install -g pnpm
    
  2. 之后在使用时,只需要把 npm 替换为 pnpm 即可;

  3. 如果要执行安装在本地的 CLI ,可以使用 pnpx ,它和 npx 的功能完全一样,唯一不同的是,在使用 pnpx 执行一个需要安装的命令时,会使用 pnpm 进行安装;

pnpm原理

  1. yarnnpm 一样,pnpm 仍然使用缓存来保存已经安装过的包,以及使用 pnpm-lock.yaml 来记录详细的依赖版本;

  2. 不同于 yarnnpmpnpm 使用 符号链接和硬链接(可将它们想象成快捷方式)的做法来放置依赖,从而规避了从缓存中拷贝文件的时间,使得安装和卸载的速度更快;

  3. 由于使用了 符号链接和硬链接pnpm 可以规避 windows 操作系统路径过长的问题,因此,它选择使用树形的依赖结果,有着几乎完美的依赖管理;

注意事项

  1. 由于 pnpm 会改动 node_modules 目录结构,使得每个包只能使用直接依赖,而不能使用间接依赖,因此,如果使用 pnpm 安装的包中包含间接依赖,则会出现问题(现在不会了,除非使用了绝对路径)

  2. 由于 pnpm 超高的安装卸载效率,越来越多的包开始修正之前的间接依赖代码;

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. cnpm
  2. 2. nvm
    1. 2.1. 下载和安装
    2. 2.2. 使用 nvm
  3. 3. pnpm
    1. 3.1. 安装和使用
    2. 3.2. pnpm原理
    3. 3.3. 注意事项