吴珂
蚂蚁集团 Node.js 工程师
一种极速安装 npm 依赖的方式
cnpm rapid 模式开源
cnpm rapid 模式剖析
性能测试环境
- 依赖数量:2211 个
- 依赖大小:38.97 MB
- 千兆网络
- 8C16G m1 Mac mini
- 无缓存 私有 registry
安装流程
- package.json
- 生成依赖树: 2211 次请求生成依赖树
- 依赖包: 2211 次请求下载包文件
- 构造 node_modules: 20万+ 次磁盘 IO 操作
性能瓶颈-网络请求
性能瓶颈-磁盘 IO
性能瓶颈-磁盘 IO
安装器体验问题
- npm
- cnpm
- yarn
- pnpm
理想的依赖安装模式
- 安装速度默认快
- 默认兼容社区生态
- 模块修改项目级隔离
企业如何集成 rapid 模式加速 CI/CD
- 安装器改造: 集成 npminstall
- 镜像改造: 镜像开启 FUSE 设备
CI/CD 流
- 统一镜像
- 统一安装行为
- 监控
如何参与 cnpm rapid 开源贡献
共建 cnpm,回馈开源社区
项目结构
参与贡献
未来计划
- macOS 体验稳定性: 进程保活 稳定性 研发体验
- npmfs 推广
- 包管理标准化: 与时俱进的标准 一致的用户体验 安全的社区生态
写在最后
实际体验只需要简单2步:
npm i -g cnpm npminstall # cnpm rapid
aliasnpm=cnpm
实际项目中测试, 本地能达到 26s -> 5s 这样的 5倍提升!