我知道Yarn帶來的好處以及它的功能npm
沒有。我有些疑惑但是:Yarn是npm上的包裝嗎?
- 是否引擎蓋一些保留相同的行爲
npm
其他命令的下紗線使用npm
? - 如果不是,是否有理由爲什麼他們重新實施紗線,並有這種方法的缺點?
我知道Yarn帶來的好處以及它的功能npm
沒有。我有些疑惑但是:Yarn是npm上的包裝嗎?
npm
其他命令的下紗線使用npm
?不,這是一個重寫。
我們沒有繼續在npm客戶端周圍建設基礎設施,我們 決定嘗試更全面地查看問題。 如果 取而代之我們試圖建立一個新的客戶端來解決我們遇到的核心問題 問題,我們正在經歷?我們倫敦辦事處的Sebastian McKenzie 開始抨擊這個想法,我們很快就對 的潛力感到興奮。
- https://code.facebook.com/posts/1840075619545360
它提供了相同的API(沒有一些快捷鍵,如果你發現)。這是(我猜測),因爲原始界面很簡單,並確保採用。
它快得多,解決了npm的典型問題(主要是不確定性部署)。這隻能通過自上而下的重寫來實現,它們也改變了安裝的方式(取,計算,下載,鏈接),因此邏輯是不同的。
這種方法的缺點是它需要大量的工作。通常情況下,你只是宣傳主要的回購協議,但鑑於他們想要一個完全不同的東西,而Facebook有辦法,他們決定單獨進行。
另一個缺點是它的好處不會立即用於所有npm老用戶,因爲它不是升級版本,並且它不隨節點安裝。
我看了看Yarn的源代碼,發現爲每個命令都寫了自定義代碼:https://github.com/yarnpkg/yarn/tree/master/src/cli/commands。
我想這種方法的缺點是,在將來當npm
添加新命令時,Yarn團隊將不得不跟蹤更改並手動實現它們。
https://code.facebook.com/posts/1840075619545360 – ceejayoz
我不這麼認爲,它有一些類似的api,但引擎蓋下有不同的設計。由於之前的api足夠保留,所以實現了類似的api。 –