pnpm尝试

2,551 阅读1分钟

昨天看到一个群里在讨论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 转换非常简单,步骤如下:

  1. 删除工程目录下的node_modules目录和package-locked.json
rm -rf ./node_modules package-lock.json
  1. 全局安装pnpm,不想全局安装 用npx也可以
npm i -g pnpm
  1. 在工程目录下执行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以上

扩展阅读