pnpm调研

122 阅读2分钟

官网地址

安装 调研下换pnpm的优势、可行性及成本

项目初衷

  • 节省磁盘空间
  • 提高安装速度
  • 创建一个非扁平的 node_modules 目录

目前的多数项目的状态(以公司目前的某个活动后台为例 )

  1. npm+ node 11安装的包可以正常运行
  2. npm+ node 14安装的包
    • node-sass@4.12.0 版本的安装出错
    • 不能正常启动,提示是nodesass的版本问题
  3. pnpm + node 14安装的包,启动的时候,提示各种依赖缺失
    • cache-loader/ts-loader/babel-loader
    • 我觉得是安装抛错,导致的,简而言之就是node版本问题

兼容性问题

  • 只研究到了 pnpm5 版本,均不支持node 12以下,而我们目前所有的老项目基本都是 node 10.13.0以下的项目
  • 如果我们要升级node版本涉及到很多方面
    • 依赖包相关问题处理(无法估计具体时长,高版本node启动的下载有很多兼容性错误,需要一个个处理)
    • 升级成功之后(使用npm能正常下载依赖包和运行),需要使用pnpm下载依赖包,再看会不会有新的问题(涉及到能不能把关联包全都下载下来)
    • 然后升级完node之后,也许会涉及到测试和生产的发布问题

pnpm的优势

  • 节省磁盘空间
  • 提高安装速度
  • 创建一个非扁平的 node_modules 目录

可行性

  • 升级node版本,目前来说是看不到不可行的地方,是可以
  • 重点是在 pnpm 下载依赖包会不会缺少关联
  • 以上都没有问题的话,需要运维协同一起处理测试和线上的node版本问题和持续集成问题,即可成功

成本

即兼容性模块中所提到的涉及问题处理