從npm處遷移過來多許多用戶來講是一個相對簡單的過程。yarn能想npm同樣定製相同的package.json
,並可以從npm倉庫下載任意的包html
若是你想要在已存在的npm項目中使用yarn,運行yarn便可,其默認運行的是yarn install:node
yarn
這將使用Yarn的與npm的分辨率算法兼容( node.js module resolution algorithm.)的分辨率算法去部署node_modules文件夾。git
若是出現錯誤,請查看已存在的問題或將其報告給 Yarn issue trackergithub
當你運行yarn
或 yarn add <package>時,將會在包的根目錄下生成
算法yarn.lock文檔。你不須要去讀或者理解這個文檔,只要在源碼控制中進行檢查便可。當其餘人使用yarn來替代npm時,
文檔將保證他們精確地獲得與你相同的依賴yarn.lock
在大多數例子中,第一次運行yarn
or yarn add就能成功。可是在一些例子中,
npmpackage.json
中的信息不夠明確去排除依賴,且會與yarn選擇依賴的明確方式產生衝突。這種狀況常常發生在一些大項目中,npm install常常失敗,致使開發人員要常常地移除node_modules
文件夾去從頭開始構建。若是這個狀況發生,儘可能在轉換成yarn以前使用npm去使依賴的版本更加明確
在yarn的1.7.0版本以後,可以使用yarn去import npm生成給yarn的package-lock.json來解決上面的問題json
這個項目的其餘開發人員仍是可以繼續使用npm,不須要讓這個項目的每一個人都同時轉換。使用yarn的開發人員都會獲得與他人相同的配置,使用npm的可能會有稍微的不一樣,這是npm有意致使的。api
以後,若是你認爲yarn不適合你,你仍可以回去使用npm,並不須要作任何的變化。若是這個項目沒有人須要使用yarn,那麼你就能夠刪除你的yarn.lock文檔,可是這不是必需要作的。
ui
若是你正使用npm-shrinkwrap.json
文檔,要注意你可能會致使一系列不一樣的依賴。yarn不支持npm-shrinkwrap.json,由於它沒有足夠的信息去支持yarn更多的肯定性算法。若是你正在使用
spanpm-shrinkwrap.json
,那麼將這個項目的全部人同時轉成使用yarn將更加容易。只要將npm-shrinkwrap.json
刪除並檢查新建立的yarn.lock
便可。
npm (v5) | Yarn |
---|---|
npm install |
yarn install |
(N/A) | yarn install --flat |
(N/A) | yarn install --har |
npm install --no-package-lock |
yarn install --no-lockfile |
(N/A) | yarn install --pure-lockfile |
npm install [package] |
yarn add [package] |
npm install [package] --save-dev |
yarn add [package] --dev |
(N/A) | yarn add [package] --peer |
npm install [package] --save-optional |
yarn add [package] --optional |
npm install [package] --save-exact |
yarn add [package] --exact |
(N/A) | yarn add [package] --tilde |
npm install [package] --global |
yarn global add [package] |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall [package] |
yarn remove [package] |
npm cache clean |
yarn cache clean [package] |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |