安裝套件
套件(package)是別人寫好、發布到 npm 登錄庫的程式。預設請裝在目前這個專案的 node_modules,這樣每位同事、每台電腦都會依 package.json 裝同一組東西。
安裝到專案
簡寫是 npm i dayjs。這會:
- 把套件放進
node_modules/ - 寫入
package.json的dependencies - 更新
package-lock.json
上線也需要的套件(例如 dayjs)會寫進 dependencies。只在開發時用的工具(測試、格式化)加 -D,會寫進 devDependencies:
在程式裡使用(專案需有 "type": "module"):
還原與移除
npm install # 依 package.json / lock 把套件補齊
npm uninstall dayjs # 移除並更新 package.json
npm outdated # 看哪些套件已過時
npm update # 在允許範圍內更新
npm list --depth=0 # 看頂層已安裝套件
語意化版本
package.json 常寫 ^1.4.2:主版號 1 不變的前提下,允許裝到更新的 1.x。實際下載到的精確版本(例如 1.11.13)記在 package-lock.json,所以 lock 檔要提交,團隊才裝得到同一版。
| 寫法 | 意思 |
|---|---|
1.4.2 |
正好這個版本 |
~1.4.2 |
可到 1.4.x |
^1.4.2 |
可到 1.x.x(預設) |
什麼時候才用 -g
-g 把套件裝到整台電腦,不屬於任何專案,所以 package.json 不會記到它。現在多數命令列工具改用 npx,或寫進 devDependencies。Express、測試、建置工具都不要全域裝,否則每台電腦的版本會不一樣。