為什麼 npm 要為每個專案單獨安裝一遍 node modules?

時間 2021-05-30 19:58:25

1樓:浪子

其實這個問題也不能怪npm的那群人,根本原因是js語言本身的問題,因為語言本身的lib過少,所以想要實現乙個功能就難免會引用別人造好的輪子,於是就會自然的產生了引用鏈。

至於做成全域性,你難以保證每個人在現有環境的情況下去相容這個專案,這也是像Docker這些容器存在的意義,保證環境區域性可控。

2樓:Vulkan

npm這點簡直太坑了,弄個專案都整一堆的node_module,不能全域性共享,並且node_module下面還有node_module,層層疊下去,不知何時才是頭。設計真是爛

3樓:曾著

1、不管是不是全域性,Deps Hell總是存在的,總是要有一定規則去解決的。

2、版本更新和解決衝突機制需要乙個全域性唯一的identity來搭建, 而不一定是庫檔案本身

3、解決防火牆問題是乙個重要的易用性因素,要不很多人玩不轉。借用遊戲的說法就是,認為玩不懂的玩家是煞筆,這樣的策劃才是煞筆

我覺得npm需要進化適應中國環境。

4樓:

因為每個專案依賴的包版本不一樣。聽說過DLL hell沒?

從管理的角度來講,區域性依賴有利於減少對執行環境的配置工作,無論對開發還是對發布/後繼維護公升級都是大大減輕了工作量。

全域性依賴的唯一好處就是省了硬碟空間。這種省毫無意義。首先如果你要為幾十幾百兆的硬碟空間斤斤計較,那麼也許你已經窮得不適合做開發。

其次如果需要支援全域性多版本也省不了多少。至於有人說的,每次npm install時間太長,我認為這也不是個事。npm install又不是天天搞,而且只是第一次全新checkout的時候比較慢,以後都是增量更新。

實在嫌慢(比如因為防火牆的原因),可以把node_modules一起提交到git裡去。

為什麼一遍又一遍告訴我自己,心裡不可以想他,但是腦袋總會情不自禁想到!?

馮梅梅 人間有一種感情叫做 愛情,誰愛得深,誰就傷的深,莫名我就想起你,只為你傷我的心,曾經的曾經已經變成曾經,為什麼不跟過去握手言和呢?浪費自己的青春何必呢?世間萬物沒有誰離不開誰,只有誰更在乎誰,乙個人來到這個世界上,不管與誰白頭,終究還是有乙個人走!珍惜當下,與其為別人難過,不如好好陪陪家人,...

你為什麼一遍又一遍不厭其煩地看武林外傳?

武林外傳開播的時候,我剛上初中,而喜劇更能讓我們印象深刻。那個時候只看得懂裡面的梗,還有每個角色的經典台詞。如果當時我上高中或者年齡更大一些的話,可能對這部電視劇集印象不會如此深刻。這也有天時地利的原因。因為每次我和妹妹看武林外傳的時候,家裡的大人都會說 瘋子在看瘋子。大人們可能會覺得不好看,因為他...

我一直不知道為什麼我會一遍一遍的看武林外傳,有人說我傻,有人說這是情懷,可是我很羨慕裡面的家?

魚鱗 因為能給我帶來快樂,能帶給我幸福和平靜,我迷上武林外傳是在畢業之後,我感覺最瘋狂的時候工作時看,吃飯時看,睡覺前看,連睡覺也不關上,沒有聲音放著畫面一直到天明,那陣子真是太瘋狂了,這種情況持續了4年。後來結婚了,每年都還要從頭到尾看個兩遍,行動硬碟和電腦裡,一直都保留著包括後來下的第81集和大...