随着前端工程化的发展,包管理器已经成为开发流程的核心。从最初的 npm 到现在的 pnpm,工具的演进主要解决了依赖地狱、磁盘空间和安装速度的问题。

npm (Node Package Manager)

Node.js 的默认包管理器。早期版本存在安装慢、依赖树嵌套过深的问题。npm v3 引入了扁平化依赖结构,但带来了“幽灵依赖”问题(可以访问未在 package.json 中声明的包)。

Yarn

由 Facebook 推出,引入了 yarn.lock 文件锁定版本,大大提高了安装速度和确定性。Yarn v2 (Berry) 更是激进地采用了 PnP (Plug'n'Play) 模式,试图摆脱 node_modules。

pnpm (Performant npm)

目前的最佳实践。pnpm 使用硬链接(Hard Links)和符号链接(Symlinks)来管理依赖。

  • 磁盘空间: 全局存储,同一版本的包只占用一份磁盘空间。
  • 非扁平化: 严格遵循依赖关系,解决了“幽灵依赖”问题。
  • 速度: 安装速度通常是最快的。

点赞(60) 打赏

评论列表 共有 12 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部