如何在 Dart 中将代码迁移到空安全

How to migrate code to null safety in Dart

最近 Flutter 团队宣布 Dart 语言现在支持声音空安全!并且在 Dart 2.12 和 Flutter 2 中可用。我想将应用程序代码迁移到空安全。

如何将我的包迁移到空安全,

如果有人可以提供有关迁移到 null-safety 的说明,那就太好了。

这里有一个相当不错的指南:https://dart.dev/null-safety/migration-guide

但基本上你应该先等到你的包的所有依赖项都迁移到 null-safety,然后你才能开始迁移。

您可以使用 dart pub outdated --mode=null-safety 检查迁移了哪些部门 之后你可以使用飞镖迁移器 dart migrate 。 这是一个交互式工具,可帮助您迁移代码。

  1. 在您的 pubspec.yaml 文件中将 Dart SDK 的下限约束设置为 2.12

    environment:
      sdk: ">=2.12.0 <3.0.0"
    
  2. 检查您的应用程序的所有包是否都已迁移到空安全。

    dart pub outdated --mode=null-safety
    
  3. 如果已迁移,请将所有包更新为其空安全变体。

    dart pub upgrade --null-safety 
    dart pub get
    
  4. 开始迁移过程。

    dart migrate
    

    如果您对更改感到满意,请使用以下方式应用它们:

    dart migrate --apply-changes  
    
  1. 运行 flutter upgrade 在终端升级Flutter

  2. 运行 dart migrate 到 运行 dart 迁移工具

  3. 解决迁移工具显示的所有错误

  4. 运行 flutter pub outdated --mode=null-safety打印全部过时 包裹

您可以查看您所依赖的包是否支持 null-safety。

  1. 运行 flutter pub upgrade --null-safety 升级所有包 自动
  2. 检查代码是否有错误并解决
  3. 运行 dart migrate 现在应该是成功的。跟着 link 查看提议的更改
  4. 按下 "Apply Migration" 按钮
  5. 再次检查代码是否有错误并修复它们

恭喜,完成后您现在应该可以运行 应用程序具有良好的空安全性。

运行 flutter run 并且应用程序应该 运行 命令行显示: