技術選型時這個問題老是困擾我,今天看到一篇文章,詳細的解釋了 npm 和 yarn 在性能,安全,支持性和使用難易度上的區別,看完以後這個問題終於有一個答案:node
若是你在乎速度和 UI,選 yarn,若是你是個保守派,選 npm 會更加合適。npm
文章地址:https://stackshare.io/stackups/npm-vs-yarn緩存
不管是在無緩存項目中(沒有 nodemodules 目錄),仍是在有緩存項目中,yarn 都比 npm 快,2 分鐘或十幾秒,並且 yarn 還支持離線下載!(這主要是由於 yarn 支持並行下載包);安全
yarn 和 npm 都採用了一些方法鎖定包的依賴版本,以防止包的依賴錯誤,因此二者在這一點上是一樣安全的,可是 yarn 多了一個「協議檢查」的功能,使用 yarn licenses list
命令能夠看到各個包的協議,其實沒什麼用。性能
yarn 是由 facebook 維護的,用來彌補 npm 的不足,而 npm 是由 Isaac Z. Schlueter 建立的一個開源的包管理器。二者的支持性其實差很少,可是更多人由於 yarn 的性能選擇 yarn。除此以外,yarn 選擇從多個包倉庫下載包,例如 npmjs.com
和 bower
,這讓 yarn 會更可靠一些。code
yarn 的用戶界面會更加簡潔,但 npm 能夠經過 -s
參數去執行靜默執行。bower
npm 和 yarn 在這方面差很少,不過 yarn 能夠經過 yarn upgrade-interactive [--latest]
命令,開啓一個手動選擇包的交互界面。get
npm 在 Github 上有 17.1K 的 Star,而 yarn 的 Star 數爲 35.6K,可是從使用量調研上看,yarn 要少不少。it