背景
工程化体系开发过程中给我们带来便利性的同时,npm模块化也给我们带来了一个磁盘杀手——node_modules,
那么如何清理陈旧的依赖包或如何节约硬盘空间呢?
方案一 npkill
快速搜索硬盘上的node_modules目录,并能列出最近修改时间,和占用空间大小,让用户选择性删除。
用法
npm i -g npkill //安装npkill
进入对应盘符或目录 执行 npmkill 命令
使用光标箭头移动 上或下 。
按下该Space键将删除光标所在的目录,从而释放宝贵的空间。
要退出,q请按 或Ctrl+c.。
更多用法,可查看官网
方案二 pnpm
当使用 npm 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被 存放在一个统一的位置。
原理
pnpm 通过链接( links)与全局存储空间(store)管理的不同项目的 node_modules 依赖。硬链接(hard links)能指向磁盘上原始文件所在的同一位置(store),但是因为 pnpm 的 node_modules 是树形目录结构,且硬链接只能用于文件不能用于目录,因此需要通过软链接(symbolic link)来实现目录寻址。
简单的说:pnpm 通过硬链接指向全局唯一的依赖包,从而节省了硬盘空间,
通过软连接来表述依赖之间的嵌套关系,因此不需要把依赖平铺至node_modules目录,很好的解决了 幽灵依赖 的问题,对项目更加规范与安全。
另外由于全局只需要下载一份依赖,对依赖的安装速度也是一种提升。
结语
节约了电脑磁盘空间,C盘剩余容量不再标红,研发人员又可以更加畅快的加班了。