Yarn是一個JavaScript包管理器,是npm的直接競爭對手,它是Facebook開源項目之一。node
它與npm軟件包兼容,所以它具備做爲npm的直接替代品的巨大優點。shell
由於並行下載和緩存,它在剛推出時候,啓動速度比npm快不少。雖然如今npm也追遇上了它的許多功能,可是Yarn還是我推薦的解決方案。npm
Yarn和npm的關係,就比如不一樣的下載軟件。去下載同一個資源,使用不一樣的下載工具而已。json
工具發展到必定程度,彼此間在功能和使用體驗上就會逐漸趨同。所以競爭對咱們的用戶來講是好事,npm也會借鑑和實現其餘好的功能特性。windows
雖然您可使用npm(npm install -g yarn)安裝Yarn,但Yarn團隊不推薦使用它。緩存
系統特定的安裝方法在https://yarnpkg.com/zh-Hans/d...。例如,在macOS上,您可使用Homebrew,並運行:工具
每一個操做系統都有本身的包管理器,可使安裝流程很是簡單順利。spa
最後,您會獲得shell中可用的yarn命令:操作系統
Yarn將其依賴項寫入名爲package.json的文件,該文件位於項目的根文件夾中,並將依賴項文件存儲到node_modules文件夾中,就像npm(若是您之前使用過它)同樣。3d
安裝現有項目的依賴項
若是您已經有一個包含依賴項列表的package.json文件但還沒有安裝軟件包,請運行
yarn
或者
yarn install
來開始安裝過程。
把包安裝在本地項目中,使用:
yarn add package-name
yarn global add package-name
yarn add --dev package-name
等價於npm中的 --save-dev 或 -D
yarn remove package-name
安裝許多依賴項時,可能會有不少其餘依賴項。您須要安裝許多軟件包,而您對這些軟件包使用的許可證一無所知。
Yarn提供了一個方便的工具,能夠打印您擁有的任何依賴項的許可證
yarn licenses list
它還能夠自動生成免責聲明,包含您項目中的全部許可證:
yarn licenses generate-disclaimer
您是否檢查過node_modules文件夾,並想知道爲何安裝了特定的軟件包?yarn why 命令會告訴你:
yarn why package-name
若是要升級單個程序包,請運行
yarn upgrade package-name
要升級全部包,請運行
yarn upgrade
可是這個命令有時會致使問題,由於盲目升級而沒有考慮到主版本的變化,可能會致使項目編譯和運行失敗。某個軟件包大版本的更新,極可能會影響現有代碼的使用。
Yarn有一個很好的工具,可讓你有選擇地更新項目中的包,這對上個問題有很大的幫助:
yarn upgrade-interactive --latest
--latest:該標誌告訴Yarn忽略package.json指定的版本範圍,並使用latest註冊表中標記的版本
若是您使用brew安裝它,如上所述,請使用:
brew upgrade yarn
或者使用npm:
npm uninstall yarn -g npm install yarn -g
Windows用戶,安裝和升級部分,請自行翻閱文檔:https://yarnpkg.com/zh-Hans/d...