出来了这么久了,是时候把项目升级并支持null-safety了。
记录一下我的步骤。
- 升级所有依赖的第三方库。如果有问题就找替代库。比如我使用了一个分享的插件,但是作者没有更新并支持null-safety, 但是有热心的网友会提供null-safety版本,直接git引用。
social_share_plugin:
git:
url: https://github.com/fareesh/social_share_plugin.git
ref: master
- 确保所有的依赖库支持null-safety
dart pub outdated --mode=null-safety #查看当前依赖的第三方库null-safety支持情况
dart pub upgrade --null-safety #更新所有依赖的第三方
- 开始迁移
dart migrate
#或
dart migrate --skip-import-check
升级有两种模式
1.非健全,项目直接升级到 Flutter 2.0 而没有迁移 App 就是 unsound null safety
2.完全健全(建议):当所有的依赖所有的库全部都迁入 null-safety,此时即为健全的空安全
如果你的dart文件已经支持null-safety,再第一行加上// @dart=2.9, 这样就告诉先不启用
// @dart=2.9
这样可以保证项目能混合模式成功运行。