使用yarn進行node.js項目依賴管理

yarn就如java的maven,專門用於對node.js項目的依賴管理,對比npm的好處是,npm吧每個項目的依賴安裝在項目目錄,導致由很多重複依賴下載。而yarn和maven一樣,在本地建立一個倉庫作爲緩存,只有打包時,才複雜一份依賴打包進去

安裝yarn

從官網下載安裝包——安裝yarn
輸入yarn --version顯示出版本號即安裝成功了
yarn --version

使用yarn

  • yarn init
    初始化一個yarn項目根目錄,這時其實就是通過命令行接收一些參數(如maven中的座標信息,項目描述等),然後自動生成一個package.json(如maven中的pom文件)
    yarn init
    package.json

package.json結構

其中主要指明瞭項目名稱,主js文件,版本號和開源協議

{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}

依賴管理

通過以下命令,分別添加 普通依賴、開發環境下的依賴、宿主依賴、可選依賴

yarn add [package]
yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional
  • 普通依賴
    普通依賴就是整個項目無論哪個階段都有的依賴,開源require
  • 開發依賴
    就如maven下的scope爲dev,只在開發運行模式下具備,打包時不具備
  • 宿主依賴
    不像maven,java的依賴導入後,依賴的依賴也被導入當前項目,都可以導入包,yarn中,普通依賴的依賴是不能直接require的,除非你有顯示依賴普通依賴的依賴或者在宿主依賴中聲明該普通依賴,也就是說,同時出現在別的依賴,與宿主依賴中的依賴,在滿足導入該依賴條件的運行時,該依賴的依賴也會導入,這時就可以require該依賴的依賴了。比如 Pa依賴了Pb,項目裏普通依賴具有Pa,這時只能require(“Pa”),除非再把Pa加入宿主依賴,那纔可以require(“Pb”)

安裝後,對應package.json變爲如下

{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "axios": "^0.19.2"
  },
  "devDependencies":{},
  "peerDependencies":{},
  "optionalDependencies":{}
}

~ 會匹配最近的小版本依賴包,比如~0.19.2會匹配所有0.19.x版本,但是不包括0.20.x
^ 會匹配最新的大版本依賴包,比如^0.19.2會匹配所有0.x.x的包,包括0.20.x,但是不包括1.x.x
直接使用通配符 * 會匹配當前最新版本
還可以添加/更新 指定依賴版本號或者標籤

yarn add [package]@[version]
yarn add [package]@[tag]
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

依賴安裝

通過使用命令

yarn install

yarn

安裝當前項目目錄的package.json的依賴到本地緩存倉庫

script腳本

在package.json中還可以指定一些腳本命令的別名,比如

  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

這時在項目目錄執行yarn run 腳本別名則會執行對應腳本,比如此處執行

yarn run build

實際會執行

vue-cli-service build

歡迎找歪歪梯聊騷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章