Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

npm semver 小筆記 和 npm install 與 npm upgrade 差別 #8

Open
JeffKko opened this issue May 19, 2019 · 0 comments
Open

npm semver 小筆記 和 npm install 與 npm upgrade 差別 #8

JeffKko opened this issue May 19, 2019 · 0 comments
Labels

Comments

@JeffKko
Copy link
Owner

JeffKko commented May 19, 2019

npm semver 小筆記 和 npm install 與 npm upgrade 差別

雖然只是一個小知識, 但每每都忘記這些符號代表什麼, 還是來做個小記錄

semver

npm 依賴管理的一個重要特性是採用了語義化版本 semver 規​​範,作為依賴版本管理方案。
semver 約定一個包的版本號必須包含3個數字,格式必須為 MAJOR.MINOR.PATCH, 意為 主版本號.小版本號.修訂版本號

  • MAJOR 對應大的版本號迭代,做了不兼容舊版的修改時要更新 MAJOR 版本號
  • MINOR 對應小版本迭代,發生兼容舊版API的修改或功能更新時,更新MINOR版本號
  • PATCH 對應修訂版本號,一般針對修復 BUG 的版本號
// 舉例
"dependencies": {
  "package1": "1.0.0", // 只接受1.0.0的版本
  "package2": "1.0.x", // 接受1.0版本的bug修復或小更新
  "package3": "*", // 最新的版本,不推薦
  "package4": ">=1.0.0", // 接受任何1.0.0版本後的更新
  "package5": "<1.9.0", // 接受不超過1.9.0版本的更新
  "package6": "~1.8.0", // 接受 >= 1.8.0 並 < 1.9.0 的版本
  "package7": "^1.1.0", // 接受 >=1.1.0 並 < 2.0.0 的版本
  "package8": "latest", // tag name for latest version
  "package9": "", // 同 * 即最新版本。
  "packageX": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
}

npm install 與 npm upgrade 差別

npm install 會把 package.json 中, 尚未安裝的 package 安裝下來

npm upgrade 也會將尚未安裝的 package 安裝下來, 但如果遇到 package.json 中, 檢查到該 package 版號不是固定版本的話, 就會根據描述的 semver 去更新並安裝

參考

@JeffKko JeffKko added the tool label May 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant