你们家的 nodejs, node_modules 太占空间了。。。。

2018-05-10 10:36:19 +08:00
 wlwood
突然发现空间不够用了。。。
https://s1.imgs.cc/img/aaaaaROv3.png?_w=750

然后,写个脚本,把 node_modules 干掉后

https://s1.imgs.cc/img/aaaaaROvG.png?_w=750

瞬间有磁盘了😕😕😕
24545 次点击
所在节点    Node.js
71 条回复
wlwood
2018-05-11 10:12:46 +08:00
@mritd 有的包,需要用 c 或者 cpp 来扩展什么的,就会需要 gcc 来编译啥的. 下载 py2 只是用来做脚本工作而已吧?
mritd
2018-05-11 10:15:56 +08:00
@wlwood 😂问题是 py 啥的还要求版本,而且事实上我可能就是为了 生成个 静态页面,后端狗对为了几个静态页面调用 gcc c++ py2 表示非常不解,感觉就像去厕所派专机过来一样
kohos
2018-05-11 10:19:29 +08:00
占容量大的包应该就是那些调 c 或者 cpp 的包,下回来一编译就几百 M,现在良心点的包已经会自带编译好的程序包了,希望其他包能多学习学习
ipwx
2018-05-11 10:25:49 +08:00
恕我直言,我觉得 node_modules 这么庞大的原因主要还是人的问题:

1、依赖分开来管理是好事,解决版本冲突,降低了引入一个依赖的代价。但这导致 Node 社区发布库不再“谦逊”,随便一个小功能就能开个库,并且随便一个项目就几十个库引用过去。这是人的问题。
2、npm install -s 让人根本不用手工编辑 package.json。这本来是好事,比起 pip 还要手工写 requirements.txt 。但是手工写的肯定比自动产生的要精简得多啊。

写 Python 项目的时候,我时不时删掉不再引用的库、尽可能避免引入库、只写直接引用的库,都是常事。虽然麻烦,但是习惯了之后,还是挺顺的流程。什么 pip freeze,是邪道,这种库除非是终端产品,不然谁敢去用?

由于工具链的落后性,才形成了社区对待依赖库的谨慎态度。我觉得 Node 工具链不错,但是社区还是缺这么一个态度的。
awesomes
2018-05-11 10:31:00 +08:00
请把 “你们家的” 去掉,谢谢
df4VW
2018-05-11 10:53:11 +08:00
@wlwood 本地的话,你不常用的项目删了就好了。production 的话,就算是一个项目 10g 的占用也绰绰有余啊。除非你是做 youtube 做 aws 之类的服务,不然这么点占用根本就无所谓
wlwood
2018-05-11 10:55:11 +08:00
@df4VW 嗯,是的。本地,之前就是不删。所以,才出现个问题。以后估计都删吧。
mooncakejs
2018-05-11 16:29:28 +08:00
@wlwood "对于很大部分人来说,并不需要多版本" 这句话在实际工作中是很有问题的,你可能没参加工作?
大部分人都需要多版本,除非你是写着玩的或者只有一个项目。项目添加依赖后,除非有 bug,否则不会轻易升级依赖,但是新开项目的时候,往往会选择新的版本,以获取最新功能,所以多版本是个很明显很直接的需求。
至于空间浪费,现在硬盘不值钱,还可以把去重的工作丢给文件系统去解决。
KgM4gLtF0shViDH3
2018-08-06 09:57:02 +08:00
@ipwx #64 requirements.txt 不需要手工写的,pip freeze >requirements.txt 这样不行吗
xihesi
2018-11-20 11:47:11 +08:00
麻烦的就是把 node_modules 做一个公共库,多项目共用。当然是因为磁盘不够用才选着这种的。磁盘只有几十 M 了 然后把之前搞过的 NODE 项目 全部清理 node_modules 释放了好多 G。
DuXing
2019-04-25 18:14:20 +08:00
我的 Mac Book Pro,120G,已经爆满了。
我计算了一下,约 96 个仓库。其中 3 ~ 5 个是高频使用仓库。38 个是不定时临幸的仓库。
一个 webpack 编译的工程的 node_modules/ 大概 50MB +。
清除 node_modules/ 于心不忍。
很是尴尬。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453676

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX