GIAC-2022sh 学习笔记 | 蚂蚁集团-吴珂-一种极速安装 npm 依赖的方式

简介: GIAC-2022sh 学习笔记 | 蚂蚁集团-吴珂-一种极速安装 npm 依赖的方式

cnpm.png

吴珂

蚂蚁集团 Node.js 工程师

一种极速安装 npm 依赖的方式

http://www.thegiac.com/2022sh/schedule

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倍提升!

目录
相关文章
|
2月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
93 1
|
22天前
|
缓存 资源调度
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
36 2
|
2月前
npm从非官方源安装
npm从非官方源安装
|
3月前
|
JavaScript Ubuntu Linux
Linux ubuntu安装nodejs/npm
Linux ubuntu安装nodejs/npm
|
3月前
|
JavaScript Java API
云效问题之流水线使用npm制品仓库构建拉取依赖特别慢如何解决
云效仓库是阿里云提供的代码托管和版本控制服务,支持Git等多种版本管理工具;本合集聚焦于云效仓库的使用技巧、团队协作流程以及常见问题解答,旨在帮助开发者更高效地进行代码管理和协作开发。
131 0
|
3月前
|
开发者
使用 --loglevel verbose 参数查看 npm install 安装过程中的更多细节
使用 --loglevel verbose 参数查看 npm install 安装过程中的更多细节
51 0
|
4月前
|
JavaScript
无法安装Vue脚手架 npm install @vue/cli -g
无法安装Vue脚手架 npm install @vue/cli -g
128 0
给npm换成国内源,提高creat-react-app的安装速度
给npm换成国内源,提高creat-react-app的安装速度
344 0
|
29天前
|
网络安全 计算机视觉
【node】 npm install 报错:code 128
【node】 npm install 报错:code 128
39 1
|
2月前
|
JavaScript 内存技术
node与npm版本对应关系以及使用nvm管理node版本
node与npm版本对应关系以及使用nvm管理node版本
360 0

推荐镜像

更多