2017-04-22 65 views
5

我應該澄清一下,我對前端工具並不熟悉,所以如果我提出明顯和愚蠢的問題,我很抱歉。紗線可以被認爲是一種可行的選擇,作爲涼亭和npm的替代品嗎?

到目前爲止,我一直在使用的字體結束和新公共管理服務器端的涼亭,雖然每個提到的工具有它的優勢,我的意思是平依賴管理亭子(從客戶降低負荷)和嵌套的依賴關係管理npm(幫助版本控制很多),使用如此多的工具(webpack,browserify等)變得相當麻煩。我可能一直以錯誤的方式使用這些工具,並可能使用其中任何一個選項(我不知道),並且只是在表面上刮擦,我只是將這個answer作爲我的經驗法則,並且一直在做所以自從我讀了它。如果我能將這兩個至少減少到一個,那將是非常好的。

最近,我對紗線很感興趣,並且圍繞它的所有宣傳看起來好像它已經做得很好,好像它會完全取代npm。當我閱讀文檔時,我發現了--flat選項,這讓我想知道是否有可能將它用作更換軟件?如果是這樣,這意味着我可以有平面或嵌套的依賴管理器(通過只有多個json文件的服務器和前端)?

我真的很感激,如果有人能指出我在正確的方向!

+2

值得注意的是,從v3開始,[npm *試圖*以更平坦的方式解決依賴關係](https://docs.npmjs.com/how-npm-works/npm3)(另請參閱[有什麼區別npm 3 vs Bower?](http://stackoverflow.com/questions/32087425/what-is-the-difference-between-npm-3-vs-bower)) – Aurora0001

+0

@ Aurora0001是否意味着涼亭已經沒有用了(或者至少在大多數任務中用yarn/npm代替)?感謝您的鏈接! – orustammanapov

回答

7

這取決於你的確切用例,但是......可能是

目前,主要趨勢似乎是針對Webpack和Browserify等模塊捆綁軟件(因此不論是npm還是Yarn),並遠離Bower。你可以閱讀NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack的情況的一個很好的概述,以及爲什麼你可能想要 Webpack而不是鮑爾的一些原因。

目前,您可能正在使用HTTP,它可以更快地生成一個JavaScript包文件,而不是很多源文件(就像Bower會發生的那樣)。這就是爲什麼Webpack和Browserify如此受歡迎(其他原因) - 他們應該提高性能並簡化開發很多。

附註:HTTP/2會降低模塊捆綁的價值,因爲多個請求將變得非常便宜。有關涉及HTTP/2的問題的更詳細描述,請參見What is the value of using Webpack with HTTP/2

如果您使用npm或Yarn,嵌套依賴關係無關緊要 - 您的前端依賴關係將全部與Webpack/Browserify捆綁在一起,因此使用嵌套包的主要成本是佔用更多空間和更多的下載時間。

由於npm v3和Yarn可以進行平面安裝,所以不應該有任何問題。簡而言之:你可能可以做到這一點,而其他許多人正在這樣做。

+1

謝謝,提供的鏈接也非常有幫助! – orustammanapov

2

最近幾天,Yarn受歡迎程度有上升的趨勢,主要是由於幾件事情與npm不同。

一,它是100%確定性的,即如果你從任何狀態運行紗線,任何時候,1000倍,它仍將始終以相同的方式工作。 npm的安裝是不確定的。如果您從各種狀態運行它,它將安裝不同的方式。

紗線也做了一些更好的緩存。事實上,它可以很好地實現安裝時間的顯着減少。大型應用程序的安裝時間可縮短10倍。

紗線也默認鎖定您的依賴。用npm shrinkwrap命令可以做到這一點,但如果你曾經維護過其中之一,那可能很麻煩。

+0

謝謝,我沒有意識到npm安裝的不確定性。 – orustammanapov

相關問題