如何在 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
。
这是一个交互式工具,可帮助您迁移代码。
在您的 pubspec.yaml
文件中将 Dart SDK 的下限约束设置为 2.12
。
environment:
sdk: ">=2.12.0 <3.0.0"
检查您的应用程序的所有包是否都已迁移到空安全。
dart pub outdated --mode=null-safety
如果已迁移,请将所有包更新为其空安全变体。
dart pub upgrade --null-safety
dart pub get
开始迁移过程。
dart migrate
如果您对更改感到满意,请使用以下方式应用它们:
dart migrate --apply-changes
运行 flutter upgrade
在终端升级Flutter
运行 dart migrate
到 运行 dart 迁移工具
解决迁移工具显示的所有错误
运行 flutter pub outdated --mode=null-safety
打印全部过时
包裹
您可以查看您所依赖的包是否支持 null-safety。
- 运行
flutter pub upgrade --null-safety
升级所有包
自动
- 检查代码是否有错误并解决
- 运行
dart migrate
现在应该是成功的。跟着
link 查看提议的更改
- 按下
"Apply Migration"
按钮
- 再次检查代码是否有错误并修复它们
恭喜,完成后您现在应该可以运行 应用程序具有良好的空安全性。
运行 flutter run
并且应用程序应该 运行 命令行显示:
最近 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
。
这是一个交互式工具,可帮助您迁移代码。
在您的
pubspec.yaml
文件中将 Dart SDK 的下限约束设置为2.12
。environment: sdk: ">=2.12.0 <3.0.0"
检查您的应用程序的所有包是否都已迁移到空安全。
dart pub outdated --mode=null-safety
如果已迁移,请将所有包更新为其空安全变体。
dart pub upgrade --null-safety dart pub get
开始迁移过程。
dart migrate
如果您对更改感到满意,请使用以下方式应用它们:
dart migrate --apply-changes
运行
flutter upgrade
在终端升级Flutter运行
dart migrate
到 运行 dart 迁移工具解决迁移工具显示的所有错误
运行
flutter pub outdated --mode=null-safety
打印全部过时 包裹
您可以查看您所依赖的包是否支持 null-safety。
- 运行
flutter pub upgrade --null-safety
升级所有包 自动 - 检查代码是否有错误并解决
- 运行
dart migrate
现在应该是成功的。跟着 link 查看提议的更改 - 按下
"Apply Migration"
按钮 - 再次检查代码是否有错误并修复它们
恭喜,完成后您现在应该可以运行 应用程序具有良好的空安全性。
运行 flutter run
并且应用程序应该 运行 命令行显示: