兩部電腦產生出來的package-lock.json內dependencies版本不相同
近日在一個用node.js開發的project,出現兩部電腦的package-lock.json內容不一致的問題,花了好幾小時才解決,所以做個記錄。
npm i產生出來的package-lock.json理該相同
相信有用node.js開發程式的朋友都不會對npm陌生。當我們下載別人的專案下來,必會打npm install 去下載node_modules,而package-lock.json就會產生出來,以便在deploy到production時可以npm ci 去以 package-lock.json 作參照來下載 node_modules ,避免package出現不預期的更新。理應每部相同node 和 npm版本的電腦產生出來的 package-lock.json 都應該相同。
不過我就是遇上不似預期的狀況,兩部電腦執行npm install後產生出來的package-lock.json內的dependencies版本不相同。我troubleshoot時做了以下檢查步驟。
解決方法
Time needed: 15 minutes.
解決package-lock.json內容不一致的方法
- 檢查兩部電腦的node 和 npm版本是否都一樣
node -v
npm -v - 把 node_modules/ 包括內裡檔案整個刪除
rm -rf node_modules/
- 把npm 的cache刪除
npm cache clean --force
- 把package-lock.json刪除
rm package-lock.json
- 執行安裝node_modules指令
npm i