2017-04-23 22 views
2

我知道Yarn帶來的好處以及它的功能npm沒有。我有些疑惑但是:Yarn是npm上的包裝嗎?

  • 是否引擎蓋一些保留相同的行爲npm其他命令的下紗線使用npm
  • 如果不是,是否有理由爲什麼他們重​​新實施紗線,並有這種方法的缺點?
+2

https://code.facebook.com/posts/1840075619545360 – ceejayoz

+1

我不這麼認爲,它有一些類似的api,但引擎蓋下有不同的設計。由於之前的api足夠保留,所以實現了類似的api。 –

回答

4

不,這是一個重寫。

我們沒有繼續在npm客戶端周圍建設基礎設施,我們 決定嘗試更全面地查看問題。 如果 取而代之我們試圖建立一個新的客戶端來解決我們遇到的核心問題 問題,我們正在經歷?我們倫敦辦事處的Sebastian McKenzie 開始抨擊這個想法,我們很快就對 的潛力感到興奮。

- https://code.facebook.com/posts/1840075619545360

它提供了相同的API(沒有一些快捷鍵,如果你發現)。這是(我猜測),因爲原始界面很簡單,並確保採用。

它快得多,解決了npm的典型問題(主要是不確定性部署)。這隻能通過自上而下的重寫來實現,它們也改變了安裝的方式(取,計算,下載,鏈接),因此邏輯是不同的。

這種方法的缺點是它需要大量的工作。通常情況下,你只是宣傳主要的回購協議,但鑑於他們想要一個完全不同的東西,而Facebook有辦法,他們決定單獨進行。

另一個缺點是它的好處不會立即用於所有npm老用戶,因爲它不是升級版本,並且它不隨節點安裝。

+0

爲什麼紗線需要安裝npm 4.6.1,並且與npm5不兼容,爲什麼我在使用紗線時需要npm,這不是矛盾嗎?看看這個:https://github.com/yarnpkg/yarn/issues/4212 – stackdave

+0

這取決於安裝方法,我相信。如果您使用brew進行安裝,它可以有不同的要求。 – jsdario