我的个人博客:www.moonkite.cn
大家好,我是风筝。
首先祝大家国庆快乐!相信很多人都已经放假了,那这篇文章中提到的小技巧可以放假回来用一用,到时给你的磁盘也放个假。
这两天系统又开始提示磁盘空间不足了,好歹也是 500 G的硬盘,所以说电脑硬盘还是越大越好,怪不得好多同行都把 512G 的改成2T的。
为了在不换电脑的情况下解决这个问题,我还特意买了一块儿外接硬盘,俗称“尿袋硬盘”,就是这个样子的。
但是原本有些东西已经放在电脑本身的硬盘里了,改起来非常麻烦,甚至有些根本不能改。
想一想,我电脑上不存照片、不存视频、不存小电影,它怎么就占那么大空间呢?
于是我决定清理一番,用磁盘管理软件进行深度扫描。
一看,微信60多G,不能动,这包括了好多年的聊天记录了,因为每次换电脑都是从旧电脑直接迁移的。
再一看,docker 容器 40多G,不好动,删了之后,下次再用的时候还得重新下载,麻烦,留着吧。
再一看,Android SDK 20多G,没办法,这玩意确实就这么大,清理了几个低版本的,清理了几个G出来。
剩下的都是一些不大不小的问件,清理了一部分,感觉是杯水车薪。
有同事提醒我,node_modules 会占很大空间,但是都是小文件,用磁盘管理工具一般检查不出来。
我一想有道理啊,这两年也确实鼓捣过不少前端项目。
清理 node_modules 工具
经过一番搜索,我发现了一个小工具,可以看到当前电脑上的所有node_modules
列表。
用起来很简单,直接在命令行执行 npx npkill
,除此使用需要安装,稍等片刻。
就会列出当前电脑上所有的 node_modules 目录列表,并标示其所占空间,可以将一些常年不用的清除掉。
不看不知道,一看吓一跳,好几伙,我本地的所有 node_modules
加起来有22.91G了,我这两年到底在执行了多少次 npm install
啊。
从这里得到一个教训,长期不用的项目记得把 node_modules
删掉,积少成多,到时候就会变成一大坨垃圾存在电脑里。
node_modules 机制有问题吧
虽说涨了经验,但是也不得不吐槽 node_modules
的这种机制。
每一个项目都会有一个独立的 node_modules
目录,用来管理当前项目的所有依赖包,也就是说如果你有10个项目,就算这10个项目的依赖完全一样,那也会下载10次依赖,有10份同样的node_modules
存在。
说到这里,就不得不夸一夸其他的包管理工具了,比如 Maven,全局设置一个仓库地址,同一个包的同一个版本都是全局复用的,也就是说不管你有多少个项目,只要这些项目依赖同一个版本的某个包,只要下载一次就够了。
其实这也不是什么优点了吧,按照正常的程序思维来考虑,这应该是常规手段才对,这不就是缓存机制吗,不管是操作系统、浏览器,还是应用系统,处处都有缓存机制的应用。
但是在 npm 和 yarn 中,就是一个项目一份,美其名曰是为了更好的独立性、可移植性和独立性。依我看来,这就是当初的设计缺陷吧,然后又懒得改了。
还好,另外一个包管理工具 pnpm
解决了这个问题,pnpm 在本地项目中使用软链接而不是复制依赖库。这样可以减少冗余的文件并节省磁盘空间。它通过全局的存储机制来共享依赖,不同的项目之间不会重复下载相同的包。
这不,如果每个项目完全单独一份包,真有那么多优点。那为什么还有pnpm
出来打脸呢?
最后
说归说,该用还得用。
如果你也有很多前端项目的话,可以试试 npx npkill
清理一些不常用的,我发现我电脑上有些项目的上次编辑时间都是2年多前了,这些项目恐怕是不会再被打开了,能删的就删了。
最重要的是:下次换电脑,一定要买最大硬盘的!
还可以看看风筝往期文章
古时的风筝,一个程序员,一个写作者。