【综合】工程化
包管理
npm
pnpm、npm、yarn 包管理工具『优劣对比』及『环境迁移』 - 掘金 (juejin.cn)
v2 早期递归依赖,导致重复安装问题
v3 扁平化解决递归依赖, 扁平化依赖算法耗时长,下载需要更长时间
- 因为如果两个模块依赖同一个模块但版本不同,npm v3会尝试将其中一个版本的模块安装在顶层,另一个版本的模块安装在依赖它的模块下面
v5 package-lock.json解决扁平化耗时长问题:
- 锁定包精确版本
- 锁定下载地址
- 锁定包直接依赖关系
package-lock.json 的作用
- 记录项目所有依赖的精确版本号
- 提供生成确切的依赖树,可视化
- 优化依赖安装过程,跳过重复依赖
- 防止依赖意外更新
pnpm
- 采用了硬链接来直接指向依赖磁盘地址,避免重复安装依赖
- 默认支持monorepo 多项目管理
- 替代nvm
pnpm env use --global [version]