cnpm
为解决国内用户连接 npm registry 缓慢的问题,淘宝搭建了自己的 registry 即淘宝 npm 镜像源(大约 10分钟 同步一次);
过去 npm 没有提供修改 registry 的功能,因此淘宝提供了一个 CLI 工具即 cnpm ,它支持除了
npm publish
以外的所有命令,只不过连接的是淘宝镜像源;如今 npm 已经支持修改 registry 了,可能 cnpm 唯一的作用就是和 npm 共存,即如果要使用官方源,则使用 npm ,如果使用淘宝源,则使用 cnpm;
nvm
nvm 并非包管理器,它是用于管理多个 node 版本的工具;
在实际的开发中,可能会出现多个项目分别使用的是不同的 node 版本,在这种场景下,管理不同的 node 版本就显得尤为重要;
nvm 就是用于切换版本的一个工具;
下载和安装
-
最新版 下载地址;
-
下载 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
-
pnpm 是一种新起的包管理器,从 npm 的下载量看,目前还没有超过 yarn ,但它的实现方式值得主流包管理器学习,某些开发者极力推荐使用 pnpm;
-
它具有以下优势:
- 目前,安装效率高于 npm 和 yarn 的最新版;
- 极其简洁的 node_modules 目录;
- 避免了开发时使用间接依赖的问题;
- 能极大的降低磁盘空间的占用;
安装和使用
-
全局安装 pnpm
npm install -g pnpm
-
之后在使用时,只需要把 npm 替换为 pnpm 即可;
-
如果要执行安装在本地的 CLI ,可以使用 pnpx ,它和 npx 的功能完全一样,唯一不同的是,在使用 pnpx 执行一个需要安装的命令时,会使用 pnpm 进行安装;
pnpm原理
-
同 yarn 和 npm 一样,pnpm 仍然使用缓存来保存已经安装过的包,以及使用 pnpm-lock.yaml 来记录详细的依赖版本;
-
不同于 yarn 和 npm,pnpm 使用 符号链接和硬链接(可将它们想象成快捷方式)的做法来放置依赖,从而规避了从缓存中拷贝文件的时间,使得安装和卸载的速度更快;
-
由于使用了 符号链接和硬链接,pnpm 可以规避 windows 操作系统路径过长的问题,因此,它选择使用树形的依赖结果,有着几乎完美的依赖管理;
注意事项
-
由于 pnpm 会改动 node_modules 目录结构,使得每个包只能使用直接依赖,而不能使用间接依赖,因此,如果使用 pnpm 安装的包中包含间接依赖,则会出现问题(现在不会了,除非使用了绝对路径)
-
由于 pnpm 超高的安装卸载效率,越来越多的包开始修正之前的间接依赖代码;
yarn☞ yarn 的核心命令
上一篇