※ 引述《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] 想用 [email protected]^2.0.0
[email protected] 想用 [email protected]^3.6.0
一个要2一个要3,不多装几个恐怕还真的会爆炸啊......
“一个专案引用同一个函式的两个版本,这是工程师在雷的问题吧?”
看来这边最雷的就是...... archiverjs
没错,明明是同一系列的东西,厂商明知依赖了同一个 package ,却没有好好同步版本
这显然是厂商的疏失
走,我陪你一起控告那个黑...... 我是说发 issue 给那个厂商
替你的 npm 讨回公道