昨天看到一个群里在讨论pnpm,心想我*前端真能造轮子,这是个什么鬼东西,试用了下发现真香,现在有点停不下来了,这个工具帮我释放了大量的磁盘空间,强烈推荐大家试试!
1. pnpm是干啥的?
- 官方介绍:快速的,节省磁盘空间的包管理工具
- 和npm、yarn一样的包管理工具
官网 pnpm.io/zh/
2. pnpm解决什么问题?
- 节约磁盘空间并提升安装速度
- 创建非扁平化的 node_modules 文件夹
具体参阅:pnpm.io/zh/motivati…
3. pnpm的优势
- 快速: 比替代品快2x
- 高效:Node_modules 中的文件是从一个单一的可内容寻址的存储中链接过来的
- 支持 monorepos: pnpm 内置支持了单仓多包
- 严格: pnpm 创建了一个非平铺的 node_modules,因此代码无法访问任意包
还是有点糊涂参阅:mp.weixin.qq.com/s/aCS4Ku34n…
4. 怎么从npm转换到pnpm?
4.1 转换非常简单,步骤如下:
- 删除工程目录下的node_modules目录和package-locked.json
rm -rf ./node_modules package-lock.json
- 全局安装pnpm,不想全局安装 用npx也可以
npm i -g pnpm
- 在工程目录下执行pnpm安装
pnpm install
or
npx pnpm install
4.2 注意事项
- 改到pnpm以后,执行run命令时可能会发现有些包没有,用pnpm安装下就可以了,安装时注意版本号,比如如果taro的主版本是3.2.10,依赖的相关taro包版本也得是3.2.10
- 注意编译环境的node版本,pnpm依赖node 14以上的版本,需要升级编译环境的node到14以上