前言
Google推出flutter這樣一個新的高效能跨平臺(Android,ios)快速開發框架之後,被業界許多開發者所關注。我在接觸了flutter之後發現這個確實是一個好東西,好東西當然要和大家分享,對吧。
今天要跟大家分享的是如何解決flutter中依賴版本衝突。
這篇文章最初出現在:Iiro的部落格中。
為什麼會存在版本依賴問題
我們在開發flutter專案中,常常會依賴第三方庫。flutter依賴項越多,就越有可能出現依賴版本衝突。
Because new_trend depends on build_runner >=0.9.0 which requires SDK version >=2.0.0-dev.61 <3.0.0, version solving failed.
pub get failed (1)
複製程式碼
它的pubspec.yaml檔案應該看上去是這樣的
dev_dependencies:
build_runner: ^0.9.0
複製程式碼
我們可以通過報錯資訊清楚地看到,這是由於build_runner和SDK版本衝突所導致的。
解決方法
當我們不清楚當前到底應該使用依賴的哪一個版本時,我們可以使用any
來解決版本依賴版本衝突的問題。
dev_dependencies:
build_runner: any
複製程式碼
any會自動呼叫pub的版本分析器,尋找合適的能夠避免衝突的依賴版本並下載。我們將不會再看到pub抱怨版本依賴版本衝突啦!
還沒完!
我們知道我們不應該把any
留在這,所以我們需要將正確的依賴版本把any
關鍵字替換掉!
使用pubspec.lock找到正確的版本
我們開啟pubspec.lock,這是根據當前專案依賴所生成的檔案,記錄了當前使用的依賴版本。
我們可以在這裡找到版本分析器為我們找到的無衝突的依賴版本號,這裡可以看到build_runner使用了0.8.3版本的依賴。再回到pubspec.yaml檔案,將any版本號替換成實際版本。
dev_dependencies:
build_runner: 0.8.3
複製程式碼
這樣就可以完美解決版本依賴問題啦~
Q&A:
為什麼不直接使用any作為版本號呢
在實際專案開發中,擁有不確定性的版本號會成為未來應用崩潰的一個極大的隱患。這可能將會使您的應用難以除錯。所以請記住,不要在你的專案中留下any
關鍵字!
寫在最後
如果各位還在flutter專案中遇到了其他關於版本依賴問題,歡迎在下方評論區留言或者給我傳送郵件 1652219550a@gmail.com 我會很樂意解答您的問題!