首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >了解一下pnpm

了解一下pnpm

作者头像
wade
发布2022-12-02 20:21:45
4200
发布2022-12-02 20:21:45
举报
文章被收录于专栏:coding个人笔记coding个人笔记

pnpm早在五年前就发布了第一个正式的版本,一直到现在使用的还是不多。抛开速度和安全性(并不觉得这两点是抛开npm或者yarn的重点),高效利用磁盘空间和支持monorepo是最大的特性。

之前分享monorepo也提到了,尤雨溪把vue3和vite迁移使用pnpm,所以未来的包管理工具会不会是pnpm?

还有一个信息是,node在16.9.0之后实验性的新增了管理包的管理工具corepack : Corepack is an experimental tool to help with managing versions of your package managers.

有趣的是Corepack现在只支持pnpm和yarn,当强制使用pnpm或者yarn的时候,用另外一种就会被拦截无法使用(npm却不会被拦截),而且还能强制使用pnpm或者yarn的版本,不需要自己手动下载某个pnpm或者yarn的版本。

都在说node官方现在对npm开始不满,因为npm越来越商业,还被GitHub收购,再加上yarn和pnpm这些包管理工具的突起,所以另外搞个cli替代npm,就是不知道哪个大版本会正式启用Corepack。

npm早期是node_modules嵌套,到后面yarn出现,node_modules平铺,新增lock等,npm把yarn实现的都实现了。如果都依赖一个相同的包,就会在各自的目录下创建node_modules文件夹。

回到pnpm对磁盘空间的高效利用(monorepo就是这点的天然产物),官网地址 : 项目初衷:节约磁盘空间并提升安装速度

使用pnpm的开源项目还是蛮多的: https://pnpm.io/workspaces#usage-examples

很多东西好好看看官网就了解了,这边就不复制官网的一些介绍,但是,自己通过旧项目进行了几个测试,发现pnpm并不好用。

我并不了解硬链接和原始链接,我只是最简单的把项目复制几份,然后用pnpm install安装依赖,发现每一个项目node_modules还是占用磁盘空间,然后通过看盘符使用的空间,发现还是占用了。而官网常见问题里面的解释并不能理解: https://pnpm.io/zh/faq#does-pnpm-work-across-multiple-hard-drives-or-filesystems

也有人说Linux测试是正确的,可能我使用的方式不对?需要使用junctions才能在Windows看见效果?。文件系统根目录下的.pnpm-store也找到了,

还有最重要的一点,我用了三个项目使用pnpm安装依赖,结果三个项目都运行不了,也并不没有想着去解决。看来使用pnpm并没有像官网说的那样直接平替npm、yarn。又或者说pnpm专门为了monorepo而生?

最后,并不是不想拥抱新的技术,只是在我个人感受来说,yarn、npm现在的各种缺点我完全是能接受的,磁盘空间?对我来说,我的项目不会多到需要优化磁盘空间。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档