Re: [討論] 請大家聊聊 JavaScript的缺陷

作者: SoftwareSing (初音唱歌)   2021-01-07 22:43:38
※ 引述《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 討回公道
作者: nmns0110 (奶油塔)   2021-01-07 23:24:00
推我婆軟體
作者: jobintan (Robin Artemstein)   2021-01-08 10:54:00
所以我只敢在前端用npm,後端最多給React SPA搞SSR而已,真正的後端我還是用別的語言的好,別用node.js了。話說這些年用開源輪子還要留意黑心貨。
作者: MangoTW (不在線上)   2021-01-08 23:00:00
請教樓上,哪個套件管理工具可以避免第三方套件有雷 ..?
作者: hegemon (hegemon)   2021-01-15 12:24:00
樓上可以用snyk去掃描專案使用的套件有沒有被回報有安全性問題

Links booklink

Contact Us: admin [ a t ] ucptt.com