有最小化 node_modules 的工具吗

2018-05-22 15:37:34 +08:00
 sneezry
node_modules 的体积非常庞大,但是里面有很多不必要的东西,比如 ts 文件啊,md 文件啊,真正用到的 js 并没那么大。还有的 module 是同时提供了 js 和 min.js ,也是没有必要的。那么有没有一个工具可以 clean up 一下 node_modules 呢,感觉可以压缩很大的空间。
6414 次点击
所在节点    Node.js
32 条回复
hxsf
2018-05-22 23:14:41 +08:00
@sneezry #20 vsce 发布的时候会根据 npmignore (没有就继承 gitignore ) 忽略 node_modules 下的东西
用户下载插件后,会根据 package.json 重新安装依赖的啊。不是很理解为什么你要把 node_modules 也打包进去啊
sneezry
2018-05-22 23:41:09 +08:00
@hxsf vsc 扩展会自动安装依赖的么?这个我还没试过。不过即使可以,npm install 岂不是更慢
hxsf
2018-05-23 00:11:25 +08:00
@sneezry #22 sorry,刚刚重新看了下,atom 的插件会这么做。

vscode 是把项目目录,和依赖(貌似默认不打包开发依赖)一起打包。然后通过 CDN ( gallerycdn.vsassets.io )分发。

能说下是什么依赖吗?
我注意到 比如 eslint 扩展,其实并没有打包 eslint,而是找项目目录或者全局的 eslint 来使用。
如 go 扩展,其实安装后会检测环境中有没有一些关于 go 的工具,然后提示用户主动安装。
或许可以通过这种方式进行体积的缩减。。

或者简单点,直接写一份 .vsceignore 好了。
FrankFang128
2018-05-23 00:13:27 +08:00
npm 设计的时候就应该用白名单机制,而不是 npmignore 黑名单机制。
M4ster
2018-05-23 00:21:23 +08:00
sneezry
2018-05-23 01:10:16 +08:00
@FrankFang128 好像 package.json 里有个 file 字段是白名单。问题是没几个开发者认真对待 file 和 npmignore。我发现 lodash 做得是比较好的。
sneezry
2018-05-23 01:10:40 +08:00
@M4ster 这个好像和我的需求不 match
orzfly
2018-05-23 04:19:44 +08:00
之前就有人提到了,我还是觉得挺好奇的...

Webpack/Rollup 打包一下不能满足你的原始需求嘛?
vghdjgh
2018-05-23 07:06:40 +08:00
h1367500190
2018-05-23 11:59:22 +08:00
题外话: 为什么界面是黑的?
Kokororin
2018-05-23 17:38:00 +08:00
.vscodeignore
XGHeaven
2018-05-31 10:55:00 +08:00
其实你们在乎包体积最大的问题在于 Node.js 开发的时候包是本地安装的。而不像是 Python/Ruby 全局安装。

所以我觉得不如引入一个新的管理工具,这个工具会自动将所有的包安装到全局,然后软连接到本地来。
对于需要编译的包,那么还是选择本地安装比较好。

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

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

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

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

© 2021 V2EX