dart2 更新

作者: soojade | 来源:发表于2018-04-25 14:13 被阅读2907次

    Dart 2 与 Dart 的早期版本有几处关键的不同。本章简单介绍这些差异,并给出迁移代码到 Dart 2 的一般建议。

    关于 Dart 2 为什么改变的信息,请看 Dart 2 公告

    不同点

    Dart 语言、库、编译系统、以及 web 开发工具都有改变。

    语言和库

    Tools

    迁移代码

    首先,查看平台迁移指南:

    如果你发布包,还需要查看 package migration instructions below。

    一般过程

    这里是从 Dart 1.x 或 Dart 2 的早期版本迁移到 Dart 2 的过程概述。

    1. 获取 Flutter 或 Dart SDK 的最新版。
    2. 升级应用依赖的包
    3. 运行 dart2_fix tool
    4. 运行分析器查找编译时错误
    5. 修复代码并再次运行分析器,不断重复,直到代码通过静态分析。
    6. 运行测试,查找运行时错误。
      • 运行软件的所有自动化测试
      • 手动测试,并查找控制台错误。考虑添加自动化测试来捕获你发现的问题。
    7. 修复问题直到代码正常工作。

    每次 SDK 有重大发布,重复以上过程。

    迁移包

    作为一个包的拥有者,你需要做以下事情:

    • 遵循你的包支持平台(看上面)的迁移提示。
    • 确保你的包的使用者知道如何报告问题。
    • 快速响应报告的问题。
    • 如果代码不是向后兼容的,更新最低 SDK 约束。
    变化和向后兼容

    如果你必须改变你的包的代码,使其在1.x 和 Dart 2 上运行。例如,你可能会添加类型注解或(一个 API 已经移除)使用一个替代的 1.x API。

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

    小心地指定 SDK 约束!错误的最低约束对于使用稳定版 SDK 的用户可能引起问题。

    测试你的改变以确保你的包按预期运行。

    SDK 版本的最高约束

    不要更新一个已发布的包单独指出它可以用于 Dart 2 预发行版。只要一个包没有 SDK 约束或一个<2.0.0的最高约束,pub get以及在任意 Dart 2 预发行版中类似的 pub 命令都可以下载这个包。(这个包不会被用于 Dart 2 稳定发行版,但你可以以后修复它。)

    当你更新一个已存在的包或发布一个新的包,为 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'
    

    最后,你需要发布你的包的新版本来声明 Dart 2 兼容性,大多数可能使用一个<3.0.0SDK 约束。因为,不兼容的改变可能出现在任意 Dart 2 预发行版,不要声明 Dart 2 兼容性直到我们宣布这样做是安全的。

    更多资源

    相关文章

      网友评论

        本文标题:dart2 更新

        本文链接:https://www.haomeiwen.com/subject/ajwelftx.html