一、安裝速度
yarn和npm安裝包的速度都非常快,但是在安裝大型項目時,yarn表現更佳。這是因為當你安裝一個包時,yarn會將它們緩存到本地硬盤中,這意味着在使用相同版本的包時,它們不需要從互聯網上重新下載。相反,npm只在本地緩存中保存一個特定版本的包,因此它需要從互聯網上重新下載相同版本的包。
// yarn安裝
yarn add package-name
// npm安裝
npm install package-name
二、版本管理
yarn和npm都支持版本管理,並且允許您升級和降級安裝的包。然而,它們之間的一個主要區別是,yarn使用yarn.lock文件來鎖定每個包的版本,而npm使用package-lock.json文件來實現類似的功能。yarn.lock文件是一個完全控制每個包版本的文件,而package-lock.json是一個描述它們如何下載的文件。雖然兩者都達到了相同的目標,但是yarn.lock文件提供了更多的精確度和可預測性。
// 使用yarn來升級包
yarn upgrade package-name
// 使用npm來升級包
npm update package-name
三、並行安裝和緩存
與npm不同,yarn可以處理多個安裝的包。它的安裝過程更快,因為它可以下載所有包並同時安裝它們,而npm則必須按順序逐個下載和安裝每個包。此外,在使用yarn安裝包時,包會被存儲在本地的yarn緩存中,而不是全局緩存中,這對於多個項目使用同一包時非常有用。
// 使用yarn來並行安裝包
yarn install
// 使用npm來安裝包
npm install
四、腳本處理
yarn和npm都允許您在安裝、構建和測試應用程序時運行自定義腳本。它們之間的一個主要區別是,yarn使用一個單獨的run命令來運行自定義腳本,而npm則需要你使用run-script命令。此外,yarn通過一個“交互式shell”允許您在安裝完成後運行自定義腳本。
// 運行自定義腳本
yarn run script-name
// 運行自定義腳本
npm run-script script-name
五、處理依賴
yarn和npm都允許您在項目中處理依賴關係。它們之間的一個主要區別是,yarn通過子命令resolve命令來解決依賴關係,而npm則通過其構建過程來解決依賴關係。yarn的子命令resolve命令會顯式地解決所有依賴項,提高了構建速度並解決了構建過程中發生的問題。
// 使用yarn來解析依賴項
yarn resolve
// 使用npm來解析依賴項
npm install
六、私有倉庫
yarn和npm都支持使用私有倉庫進行包管理。它們之間的一個主要區別是,yarn可以通過命令行配置私有倉庫。相反,npm需要在.npmrc配置文件中手動添加私有倉庫。
// 添加私有倉庫
yarn config set registry http://my-private-repo.com/
// 添加私有倉庫
npm config set registry http://my-private-repo.com/
原創文章,作者:FHKIN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/335046.html