Package.json 依賴管理
我們使用 npm 安裝包的時候,常常會安裝很多依賴,等到專案上線後,專案程式碼一般不會改動了。可依賴包卻也在不斷地更新。那麼我們依賴包是否需要同樣不斷更新?
是否需要升級依賴包
我們從開發者和使用者兩個角度思考一下。
使用者其實並不關心專案中的依賴,只要程式能夠正常執行就好了,如果升級後導致了更多的問題,還會引起使用者的反感。
開發者和使用者不一樣,由於前端更新換代非常快,庫的更新也特別快,保持依賴庫的更新,可以起到優化專案,利於維護等好處。
優化專案:新版本的庫一般是對舊版本庫的一些擴充套件、一些已知 bug 的修復、效能優化等。例如:同樣使用 node 跑一次測試用例,node10 版本比 node6 版本構建時間要縮短 50% 以上。
利於維護:新版本的庫都是最新的文件,查閱比較方便,如果遇到專案交接給一個新手,可以避免去學習一些老版本的語法,降低交接難度。
1、最簡單的方法是使用 npm update package_xxx 來升級一個包,但會受到包版本規則的影響。
package.json 中包版本號規則:
- ~1.0.0 匹配 1.0.x
- ^1.0.0 匹配 1.x.x
- 1.0.0 匹配 1.0.0
- >1.0.0 匹配大於 1.0.0
- <1.0.0 匹配小於 1.0.0
- * 匹配任何版本
- latest 匹配最新版本
2、使用greenkeeper 。這個工具使用 github 賬號登入後,選定指定專案,它會解析你的 package.json 檔案,當有更新的依賴包被載入進來的時候,就會提交一個 Pull requests,這會觸發 ci 構建,如果 ci 沒什麼問題,直接合並就好了。
如果 ci 有問題,證明新的依賴包可能更改了語法,或者不向下相容了,我們可以第一時間發現問題並處理 ,而不必等到依賴包更新太多導致語法差異越來越大,到時候再想相容新版本可就要費一番心思了。
3、如果你的依賴都是最新的,還可以在David 上新增小圖示哦!