Mac 上有没有什么工具可以统一管理本地所有的 node_module

2019-02-11 10:56:25 +08:00
 m9rco

我发现好几个前端工程node_module好大啊要是有什么可以把他们全放在某一个地方就不用每次都下载这么多包了

2416 次点击
所在节点    问与答
11 条回复
Vegetable
2019-02-11 11:00:55 +08:00
yarn 自带缓存功能吧,相同版本的包就下载一次。
m9rco
2019-02-11 11:06:22 +08:00
@Vegetable 不是说 npm5.0 后 yarn 跟 npm 差不多嘛
m9rco
2019-02-11 11:15:56 +08:00
我指的说每个工程都有 1 个 G 的 node_modules 诶
mscststs
2019-02-11 11:30:16 +08:00
可以试试版本相同的依赖全局安装,我觉得 node_modules 的意义就是为了保证依赖的版本在协同工作的时候能够确定不变,所以每个项目都维护一个.lock 和 node_modules 是有意义的。

实际上我记得 cnpm 是使用链接的方式来节约空间。但是据说这依然会导致一些其他问题。
justin2018
2019-02-11 12:35:36 +08:00
@m9rco 老铁 我也是 每个工程都很大~~ 又不想删除~~ 免得删除了又要下载一次~ 我基本上 1 年清理一次~~~
bestie
2019-02-11 12:42:16 +08:00
pnpm 应该是你想要的
tonyaiken
2019-02-11 13:44:32 +08:00
yarn
m9rco
2019-02-11 13:49:35 +08:00
@justin2018 该 link 的时候应该甩 link 我 50G 的小磁盘 几个项目的 node_module 就给我占了 10G
azh7138m
2019-02-11 13:59:38 +08:00
新时代的全家桶(
目前来看,很难公用。
node 的包管理的一个特点是允许依赖一个包的不同版本,这就让复用变得很困难,yarn 一开始设计的时候会让一个项目的相同依赖尽可能 解析(? resolve )到同一个版本,已经做的很不错了。
你把她们放到一个公共目录,也还是会那么大的,不会变小很多。
m9rco
2019-02-11 14:55:22 +08:00
@azh7138m 公用的地方打 link 就可以了
azh7138m
2019-02-11 15:00:59 +08:00
@m9rco 是版本不同。
我的项目依赖 A 依赖 B 依赖 C 依赖 D,
A 依赖 D
B 依赖 D
C 依赖 D
假设是 4 个不同的版本,用了 link,也是要保存 4 个版本,体积不会变小。
我想表达这个意思。

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

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

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

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

© 2021 V2EX