package.json 總結
devDependencies與dependencies
package.json 中的 devDependencies 與 dependencies 的依賴包都會下載到nodemodule裡面,但如果是npm套件的話使用者下載就只會下載dependencies裡面的依賴
devDependencies 開發時候的依賴
dependencies 上線時還要繼續使用的依賴
npm i 與npm ci
npm i 安裝的時候會自動幫我們更新依賴的版本
npm ci 就可以避免這個狀況(會針對 package-lock.json 來還原套件)
不過我們也是有辦法在npm i 的時候去做個限制或指定版本以下為比較常用的
- 只有數字,指定版本號
- ~ 取到第三位
- ^ 取到第二位
"dependencies": {
"pinia": "2.0.6", 只要使用2.0.6
"vue": "~3.2.26", 可使用3.2.x並且小於3.3.0
"vue-router": "^4.0.12" 可使用4.x.x並且小於5.0.0
}
做了設定後就不怕有人npm i 偷偷更新到不兼容的版本
參考
https://blog.poychang.net/package-json-version/
https://hsiangfeng.github.io/nodejs/20211027/1827968017/