透過 npm 安裝和指定版本、更新和指定版本、移除套件|Node Package Manager|node套件管理|npm|node_modules|package.json|package-lock.json|伊恩踩坑筆記
當你在安裝 node 時,會自動附帶 npm ,也就是 Node Package Manager 套件管理的縮寫。你可以透過 npm 指令安裝其他工程師所精心撰寫的優質套件,並將其套件依照個人需求編輯成你要的功能
透過 npm 安裝套件時,會自帶 package.json ,這個檔案是為了管理你的套件版本,並且方便 npm 安裝好所有該項目必要的套件
以下是介紹比較常用的指令,更詳細可以參考 npm 官方網站
安裝
假設我們要安裝 express 套件,在終端機中下指令
$ npm i express
i 是 install 的縮寫,install 作用相同
詳細說明與更多功能:https://www.npmjs.cn/cli/install/
安裝完成後你的項目根目錄底下就會有一個 node_modules 的資料夾,裡面是存放你各式套件的地方
除非有特殊需求,否則 node_modules 通常是不會建議跟著 git 到版控去,因為項目大小會過於龐大,也不便於更新套件版本。所以剛拿到項目要開始 Coding 前,都要先 npm i 安裝套件
移除
當我們不需要 express 套件了,在終端機中下指令
$ npm rm express
rm 是 uninstall 的縮寫,uninstall, remove, r, un, unlink 作用相同
詳細說明與更多功能:https://www.npmjs.cn/cli/uninstall/
該套件就會從你的 package.json 名單以及 node_modules 中被移除
安裝指定版本
你可以根據需求安裝你要的版本。假設 express 最新版本為 4.17.1 版,但我想要安裝 3.9.11 版時,在終端機中下指令
$ npm i express@3.9.11
前提是 express 有曾經發布 3.9.11,而不是數字隨便填哦!
更新指定版本
有時候我們不見得要更新到最新版本,可能只要某個版本就可以了,有幾個方式
- 在 package.json 中將該套件的版本輸入為你要的版本,然後在終端機中下指令
$ npm up <套件名稱>
save 意思是要將該版號同時也更新到 package.json 中,這樣其他工程師透過 npm i 安裝時才會安裝相同的套件版本,避免版本不同步。如果拿掉 save 就不會寫入 package.json 中
- 直接安裝最新版本
$ npm up <套件名稱>@latest
什麼是 save 與 save-dev
$ npm i <套件名稱> --save
$ npm i <套件名稱> --save-dev
- save:在開發、發佈時都需要依賴的套件
- save-dev:在開發時才會依賴的套件,發佈後不需要使用
package.json 依賴項的版本控制符號
你可以直接在 package.json 指定該套件的版本安裝範圍或指定只在下一個版本之前的最新版本,例如
"dependencies": {
"dep1": "^1.1.1"
}
假設 dep1 有新的版本為 1.7.6 版,表示它會直接安裝 1.7.6 版,因為它大於 1.1.1 版
"dependencies": {
"dep1": "~1.1.1"
}
假設 dep1 有新的版本為 1.7.6 版,但是在 1.1 版本時有幾個修正,因此在 1.2 版之前可能有 1.1.7 版,此時這樣設定的話,它就只會更新為 1.1.7 版而不會是 1.7.6 版
package-lock.json
package.json 只能鎖定大版本(版號第一位數字),除非有指定版本,否則都是安裝該大版號底下的最新版本,這會失去一些依賴項穩定性。然而,package-lock.json 的作用是確保大家的版本都必須一致,每次安裝時就會鎖定你安裝的那個版本
ING Design 応設計
https://www.theingdesign.com/