昨晚,我体会了没有 pnpm 的痛(一)

简介: 昨晚,我体会了没有 pnpm 的痛(一)

课题:

  1. 如果没有U盘,window 和 mac 本地计算机之间如何传输大量文件?
  2. 为什么要用 pnpm?硬链接、软链接是什么?

起因


事情是这样的,最近自己的办公设备,从thinkpad 更换到了macbook pro14,因为m1 芯片的强悍性能,工作效率都有了很大提升,甚至每天背着回家都不嫌累了,这不,昨晚照常早早的回到家,做好饭,打开电脑看着电影,突然想起来之前电脑上还有很多项目代码没迁移,gitlab 上的就不说了,直接clone 下就好了,剩下的都是一些历史项目老代码绝版的~,手头有U盘和移动硬盘但是 mac 没有 usb 接口,转接头也在公司,而且这个硬盘还不能直接供mac 访问,还要用额外的软件处理格式。。,嗯想了一下,手头可行的方案大概有这些。


快传网站


之前偶尔用过奶牛快传来传输压缩包文件,当时是因为内网原因某些 npm 包下不下来,所以同事用这个网站传给我的,不过那个太慢来,限制也多,而且这种方案都要把自己文件走一遍他们服务器的,不适合传输隐私文件,不太行。pass


局域网共享


我记得一般公司内网都有局域网共享,来存储访问共享文件夹,而且可操作复制到本地,那么 mac 和window 之间是否支持这种方式呢?一通查找下来发现也是可以的(开心),那么就试一下看看吧。

首先,保证window 和 mac 设备在同一个网络下,最简单就是连接同一个 wifi,找到要共享的文件夹,右击 => 属性 => 共享 => 勾选“共享此文件夹” => 选择共享用户,默认 Everyone => 应用、确认。到这一步,该文件夹就被配置为共享文件夹了,在当前局域网内的其他设备均可以通过此设备的 ip + 用户账号密码来进行访问了。

mac 下打开 Finder(访达), 菜单栏 => 前往 => 连接服务器 => 输入 smb://ip地址 => 连接 => 如果链接成功则需要输入设备账号密码来进行验证,通过后就会在Finder 的侧边栏看到一个新的设备选项了,打开就能看到之前共享的文件夹了,可以像普通文件一样来访问和移动。


1687778123711.png

1687778134703.png


事情到这里我以为可以愉快到复制粘贴了,然而发现项目实在太多,大大小小几十个,最糟心到是很多项目里都有node_modules 文件夹,代码才几M,node_modules 却有 200+M,这些包文件因为没能复用,所以基本上每个项目都单独保存了一份,好吧,现在只能先把 node_modules 删除掉了,然后再移动项目代码,这样就很快了。

本来以为事情已经完美结束了,今天却发现一个意外的问题,用过 M1 的同学可能听说过 ssd swap 这个概念,它是 macos 系统同内存规格下比 window 系统更加流畅的原因之一,当系统应用占用过多,内存不够时 window 会有明显的卡顿,macOS 系统却好很多,因为此时它会将暂时不用的应用缓存从内存中转移到 ssd 中,给内存腾出空间。

这个过程是无感知的所以你会发现明明开启了多个大型应用理论上早就超出了内存大小,可是依然不会有明显的卡顿,就是这个原因,特别是随着 ssd 性能的增强以及M1 芯片架构的改变,这个特性被更好的使用了,一方面这是个好事情,充分利用了ssd 性能以更小的内存换来比以往更好的使用体验,但是事情都是有两面性的,swap 的原理意味着它将带来更大的ssd 读写量,而一般 ssd 是有使用寿命的,也就是它的全盘写入次数是有上限的。

硬盘的寿命一般用 TBW (最大写入量)来表示,1T 规格的 ssd固态通常标称的保修寿命为 600TBW,也许你注意到了这里说的是保修寿命而不是使用寿命,是的反正大家都说实际寿命要远远大于保修寿命,谁知道呢。我就姑且按照 1T 600TBW 来算,我512GB 的硬盘就是 300TBW 的标称写入量,本来这是足够用的了,按照普通人的使用习惯,甚至我作为开发人员办公加日常娱乐全天10小时的使用强度来说用个10年都没问题,这是我根据过去50天来的使用习惯统计而来的,最近一次统计是2月1号,平均每个月3T, 3*12 = 36T/年,将近十年的寿命。

但是昨晚一通操作之后,今天在公司查了一遍发现 swap量在一周内增加了 6T(1T==1024GB),很恐怖哎,实在想不明白,怀疑是昨晚文件操作引起的数据读写激增,可能性还是挺大的,一是我没有对文件进行压缩,所以磁盘要读取文件数量并且串行处理,比单个压缩文件要消耗磁盘;二是node_modules 文件可能有遗漏的没有删除 那里面文件居多树形组织复杂度很高,对文件的索引建立过程肯定也很消耗磁盘。

怀疑归怀疑,但是这6T 的大小也实在是匪夷所思 我的项目虽然多但是 1G 都不到的,swap 能达到 6144G 就很神奇,罢了罢了,暂时没有眉目,先记录下来。


1687778145027.png


pnpm 可以做什么


当时我就在想,如果我的项目都用的 pnpm 来管理的包,node_modules 只完整的保存了一份,当需要批量备份代码的时候就直接压缩个包就行了,不需要再单独删除每个项目缓存的包文件了,省心很多啊。

目录
打赏
0
0
0
0
391
分享
相关文章
昨晚,我体会了没有 pnpm 的痛(二)
昨晚,我体会了没有 pnpm 的痛(二)
139 0
【paddlehubOCR项目】网课手酸酸,眼花花,救星来啦!
大家好这里是三岁,今天给大家带来的是在AiStudio项目平台的一个精选项目,虽然很短,但是效果拔群,使用到了最近特别火的paddleOCR~~~
292 0
【paddlehubOCR项目】网课手酸酸,眼花花,救星来啦!
前端小白躺平摆烂可以吗?
开局即炼狱模式,前端小白躺平摆烂可以吗 这几年毕业的大学生有多苦都不必我们说了。大学才4年,疫情占3年,好不容易熬到毕业,找工作又进入了炼狱模式。 整个互联网裁员裁到上了热搜,之前选择这个专业时所幻想的高薪梦,大厂梦,受到现实的无情打脸。
前端小白躺平摆烂可以吗?
巧用NodeJs帮老板解决个人需求!老板娘直呼:"牛!niu!🐂!"
大家好,我是HoMeTown 继上次用Js+Css给Boss秀完肌肉💪🏻,打出组合拳之后,(#敢在我工位装摄像头?吃我一套JS ➕ CSS组合拳!!👊🏻),今天是老板奖励我连续工作的第7/31天,不过就在今天,这个糟糕的事情终于赢来了新的转机,老板有了一个大不大,小不小的个人需求想让我看能不能写一段脚本,帮他度过难关,听完之后,我觉得是时候拿回作为程序员的尊严!展示一把真正的肌肉💪🏻了(破音~~~!)。
177 0
程序员养家活口接私活必备网站(顺便用技术改变世界)
程序员接私活的原因很多种(挣钱、养家糊口、提升技术等等)。下面整理了一下网站送给最有潜能的你。 提前准备好自己的笔记本和技术呦。
582 0
上了学这么久,我才知道他们为什么可以这么爽(上)
目录 前情提要 安装插件 1.下载链接 2.安装 遇到无法拖进去怎么办? 3.新的体验
上了学这么久,我才知道他们为什么可以这么爽(上)
关于一个大三学生做项目新手入坑的经验之谈
通过阿里云的实验简单的知道了云服务器的认识和了解,大概知道了云服务器的作用,他给我们带来了许多便利。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等