作者SoftwareSing (初音唱歌)
看板Soft_Job
标题Re: [讨论] 请大家聊聊 JavaScript的缺陷
时间Thu Jan 7 22:43:38 2021
※ 引述《brli7848 (星の妄想)》之铭言:
: 先来看个实际存在的专案结构在 npm install 後
: zettlr/node_modules/archiver-utils/node_modules/readable-stream/node_modules/
: inherits/LICENSE
: 三层啊!大大们!光是一个 lib 就埋了三层啊!
npm 的问题,我试着安装了一下
因为说是去年7月遇到的,所以我使用 2020/06/30 发布的 node 12.18.2 搭配 npm 6.14.5
https://i.imgur.com/LMWcPMf.png
在只有装 archiver-utils 的情况下,他很平,可能比我婆软体还平
archiver-utils 底下没有 node_modules , readable-stream 底下也没有
当然 inherits 也在同一层
那麽问题出在哪里呢?
为什麽 npm 去年发了疯似的埋三层?
我试着去 google 了专案名,找到一个 github ,就先当作是这个专案好了
https://github.com/Zettlr/Zettlr
我们直接搜寻本应不存在的第二层 ─ readable-stream
呃...超多结果,这也装太多种版本了吧
我们就看出问题的 archiver-utils 底下的吧
https://github.com/Zettlr/Zettlr/blob/develop/yarn.lock#L1073
https://i.imgur.com/2EBZzGv.png
我想问题就在这里了
[email protected] 想用 readable-stream@^2.0.0
[email protected] 想用 readable-stream@^3.6.0
一个要2一个要3,不多装几个恐怕还真的会爆炸啊......
「一个专案引用同一个函式的两个版本,这是工程师在雷的问题吧?」
看来这边最雷的就是...... archiverjs
没错,明明是同一系列的东西,厂商明知依赖了同一个 package ,却没有好好同步版本
这显然是厂商的疏失
走,我陪你一起控告那个黑...... 我是说发 issue 给那个厂商
替你的 npm 讨回公道
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.163.138 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1610030631.A.E7A.html
1F:推 nmns0110: 推我婆软体 01/07 23:24
2F:→ jobintan: 所以我只敢在前端用npm,後端最多给React SPA搞SSR而已 01/08 10:54
3F:→ jobintan: ,真正的後端我还是用别的语言的好,别用node.js了。 01/08 10:55
4F:→ jobintan: 话说这些年用开源轮子还要留意黑心货。 01/08 10:56
5F:推 MangoTW: 请教楼上,哪个套件管理工具可以避免第三方套件有雷 ..? 01/08 23:00
6F:推 hegemon: 楼上可以用snyk去扫描专案使用的套件有没有被回报有安全 01/15 12:24
7F:→ hegemon: 性问题 01/15 12:24