dart2 更新

Dart 2 與 Dart 的早期版本有幾處關(guān)鍵的不同。本章簡單介紹這些差異,并給出遷移代碼到 Dart 2 的一般建議。

關(guān)于 Dart 2 為什么改變的信息,請看 Dart 2 公告。

不同點

Dart 語言、庫、編譯系統(tǒng)、以及 web 開發(fā)工具都有改變。

語言和庫

Tools

遷移代碼

首先,查看平臺遷移指南:

如果你發(fā)布包,還需要查看 package migration instructions below。

一般過程

這里是從 Dart 1.x 或 Dart 2 的早期版本遷移到 Dart 2 的過程概述。

  1. 獲取 Flutter 或 Dart SDK 的最新版。
  2. 升級應(yīng)用依賴的包
  3. 運(yùn)行 dart2_fix tool。
  4. 運(yùn)行分析器查找編譯時錯誤
  5. 修復(fù)代碼并再次運(yùn)行分析器,不斷重復(fù),直到代碼通過靜態(tài)分析。
  6. 運(yùn)行測試,查找運(yùn)行時錯誤。
    • 運(yùn)行軟件的所有自動化測試。
    • 手動測試,并查找控制臺錯誤??紤]添加自動化測試來捕獲你發(fā)現(xiàn)的問題。
  7. 修復(fù)問題直到代碼正常工作。

每次 SDK 有重大發(fā)布,重復(fù)以上過程。

遷移包

作為一個包的擁有者,你需要做以下事情:

  • 遵循你的包支持平臺(看上面)的遷移提示。
  • 確保你的包的使用者知道如何報告問題。
  • 快速響應(yīng)報告的問題。
  • 如果代碼不是向后兼容的,更新最低 SDK 約束。
變化和向后兼容

如果你必須改變你的包的代碼,使其在1.x 和 Dart 2 上運(yùn)行。例如,你可能會添加類型注解或(一個 API 已經(jīng)移除)使用一個替代的 1.x API。

如果改變不能做到向后兼容,更新最低SDK 約束。

小心地指定 SDK 約束!錯誤的最低約束對于使用穩(wěn)定版 SDK 的用戶可能引起問題。

測試你的改變以確保你的包按預(yù)期運(yùn)行。

SDK 版本的最高約束

不要更新一個已發(fā)布的包單獨指出它可以用于 Dart 2 預(yù)發(fā)行版。只要一個包沒有 SDK 約束或一個<2.0.0的最高約束,pub get以及在任意 Dart 2 預(yù)發(fā)行版中類似的 pub 命令都可以下載這個包。(這個包不會被用于 Dart 2 穩(wěn)定發(fā)行版,但你可以以后修復(fù)它。)

當(dāng)你更新一個已存在的包或發(fā)布一個新的包,為 SDK 版本指定一個<2.0.0的最高約束。例如:

# Works in 1.20.1+; might work in 2.0.0-dev:
sdk: '>=1.20.1 <2.0.0'

# Backward incompatible change requires at least 2.0.0-dev.1.2:
sdk: '>=2.0.0-dev.1.2 <2.0.0'

最后,你需要發(fā)布你的包的新版本來聲明 Dart 2 兼容性,大多數(shù)可能使用一個<3.0.0SDK 約束。因為,不兼容的改變可能出現(xiàn)在任意 Dart 2 預(yù)發(fā)行版,不要聲明 Dart 2 兼容性直到我們宣布這樣做是安全的。

更多資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.編譯程序(1)gcc xx.c,他會默認(rèn)生成一個a.out的可執(zhí)行文件,在a.out所在目錄,執(zhí)行./a.o...
    萌面大叔2閱讀 1,423評論 0 1
  • 這世界上,除了老媽和老婆外,女領(lǐng)導(dǎo)很可能就是你生活中第三個最重要的女人。 跟老媽或老婆吵架,還有和解的可能,但是跟...
    這個饅頭有餡閱讀 8,932評論 0 5
  • 看得見的大地 看不見的風(fēng) 一雙看不見的手 醫(yī)治大傷痕累累的大地 看得見的人流 看不見的空氣 一個看不見的懷抱 哺乳...
    Love_999閱讀 566評論 7 3
  • 吃飽沒事干的時候,我就喜歡琢磨 親情啊 愛情啊 友情啊 這些玩意,我發(fā)現(xiàn)有些想不通的事情,你一直想 一直想,就能想...
    化妝師Amy閱讀 438評論 2 3

友情鏈接更多精彩內(nèi)容