• 了解一下pnpm


    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现在的各种缺点我完全是能接受的,磁盘空间?对我来说,我的项目不会多到需要优化磁盘空间。

    欢迎关注订阅号 coding个人笔记

  • 相关阅读:
    UMLChina公众号文章精选(20220807更新精选)
    性能测试学习——项目环境搭建和Jmete学习二
    A Survey on Explainable Artificial Intelligence (XAI): Toward Medical XAI学习笔记
    redisson常用api
    【Make YOLO Great Again】YOLOv1-v7全系列大解析(输入侧篇)
    【云原生 | Kubernetes 系列】--Ceph Dashboard和Ceph 监控
    Vue开发中常用的 js处理数组的方法
    (附源码)springboot农田灌溉设备管理系统 毕业设计 260931
    spring的一些了解和使用maven确定目录结构
    loj 10078 / 一本通 1500 / 洛谷 P5764【最短路】【dfs枚举排列】
  • 原文地址:https://blog.csdn.net/wade3po/article/details/126302540