2016-10-13 40 views
18

the blog post announcing yarn (an alternative npm client)他們說,「最簡單的入門方法是運行npm install -g yarn」。但是如果你去the "install yarn" page in their docs,「npm安裝紗線」沒有在任何平臺特定的安裝頁面上列出,它只作爲「替代品」頁面上的三個選項中的第三個提供。此外,當你npm install紗線,它打印一個棄用警告,「建議使用本地安裝方法爲您的環境安裝Yarn。」所以我的問題是,如果npm install是最簡單的安裝方法,爲什麼它不是在他們的文檔中推薦的方法?使用npm安裝紗線有缺點嗎?爲什麼我不使用npm來安裝紗線?

回答

10

通過npm安裝紗線沒有明顯的缺點。事實上,我自己選擇這種方法的原因有幾個:

  1. 這顯然是最簡單的方法。 npm i --global yarn和你的 可以立即用你的控制檯上的npm代替yarn
  2. 如果您使用nvm並在每個版本的NodeJS保持不同的代碼項目,那麼你可以在一個版本上安裝紗線和沒有它在其他
  3. 老實說,我能想到的,它不是唯一的原因在特定於平臺的安裝提到的是,NPM平臺無關
2

由於npm不是平臺特定的,幾乎可以在任何系統上運行,因此它被列爲備選項。與特定於平臺的安裝相比,沒有優勢或劣勢。區別在於安裝位置,但所有方法都將全局yarn命令公開給您的CLI。

我認爲他們將其列爲「最簡單的方法」,因爲大多數人已經非常熟悉npm

17

根據紗線項目的維護者,通過NPM goes against the goals of the project安裝紗線,可能會引發問題,並且,一般來說,不是特定於平臺的安裝方法糟糕。


優勢,以推薦特定於平臺的安裝:

  • 紗線隊的問候NPM爲不安全和不可靠的。從紗線的"Installation" page「內經故宮安裝」部分:

    注:一般不建議通過NPM安裝的紗線。使用npm安裝Yarn是不確定的,軟件包沒有簽名,並且唯一的完整性檢查是基本的SHA1哈希,這在安裝系統範圍的應用程序時存在安全風險。

    由於這些原因,強烈建議您通過最適合您的操作系統的安裝方法安裝Yarn。

  • 運行的紗線,這是一個獨立的包管理工具,通過NPM可導致邊緣的情況下問題(見issue 2072

  • 通過系統包管理器安裝從NPM解耦紗,使您可以運行無NPM紗
  • 系統包管理器通常運行規律,保持紗線更新
  • 通過NPM安裝紗線slow

優勢,以npm install -g yarn

  • 方便快捷(npm install -g yarn
  • 能在任何環境NPM(平臺無關)
  • 熟悉範式和過程的Node.js開發人員來完成
  • 可方便更新(npm update -g yarn
    • 紗線update命令存在(yarn self-update),但它似乎是broken
  • 對系統軟件包管理器不依賴
  • 可以通過nvm

使用不同版本的紗線爲不同的項目或不同版本的Node.js的系統包管理器參數的建議當提到Windows,沒有官方軟件包管理器時(除非您計算Windows更新),安裝往往會崩潰。此外,Windows包管理器(如Chocolatey)通常未配置爲自動更新。

我不確定我是否完全同意紗線團隊對此的決定,但他們確實提出了一些公正的觀點。 Yarn項目還很年輕,如果要成爲npm的替代品,那麼鼓勵npm作爲其主要安裝者是沒有意義的。

無論如何,通過npm安裝似乎現在在大多數情況下工作得很好。


來源:

相關問題