-
Notifications
You must be signed in to change notification settings - Fork 503
Null Safety Guide
Hello ,各位 Flutter 开发者,Bruno 自 12 月 10 日上线后,迁移空安全(null-safe)是大家非常关注的一个问题。由于 Bruno 组件多,体量大,空安全的适配适配可能需要很多时间。所以我们发起空安全迁移项目,我们任然会全力进行空安全的适配,但是也期望更多的人能加入到我们,成为项目的一员。
在你决定参与迁移空安全前,请先阅读 空安全 相关文档,并且掌握 常见问题 的解法,然后参照 迁移步骤 开始迁移。
由于是多人协作,我们采用非健全模式逐步迁移,还请确定没有将其它未迁移的部分打开。
重要事情说三遍,请注意 请注意 请注意~~~~
-
优先迁移lib ,待 lib 全部迁移完成后再迁移 example
-
迁移分支:null-safe (请确定在对应分支进行迁移)
-
Flutter SDK:2.2.2
bruno 依赖库均已迁移最新版本(null-safe),因此我们只需进行以下步骤
Step1:
dart migrate
Step2:
如果你的 package 可以进行迁移,工具会输出类似以下的内容:
View the migration suggestions by visiting:
http://127.0.0.1:60278/Users/you/project/mypkg.console-simple?authToken=Xfz0jvpyeMI%3D
Step3:
使用 Chrome 浏览器访问 URL,你可以看到一个交互式的界面,引导你进行迁移
Step4:
请将你要迁移的组件进行迁移,其余文件取消勾选
eg: 如果你想对BrnVerticalIconButton组件进行迁移 ,那么你只勾选其所在dart文件(brn_vertical_icon_button.dart)和其组合的其余内部组件 brn_icon_button.dart,其余的勾选去掉
进行迁移结果改进,你可以直接在编辑器中改进(工具默认的迁移改动是向后兼容的),确定改动后点击 APPLY MIGRATE,即可生效。
当然你也可以点击 APPLY MIGRATE 后,在工程中进行迁移结果改进
Step5:
测试或运行混合版本的程序
-
在
dart
和flutter
命令里,加入--no-sound-null-safety
标记禁用。例如:dart --no-sound-null-safety run flutter run --no-sound-null-safety
-
或者,设定程序入口的语言版本 —— 包含 main() 函数的文件 —— 设定为 2.9。在 Flutter 应用中,一般是 lib/main.dart。在命令行应用中,一般是 bin/<package 名称>.dart。同时你也可以设定 test 下的文件,因为它们也包含程序入口。例如
// @dart=2.9
import 'src/my_app.dart';
main() {
//...
}
代码迁移完成后,也请务必确保编辑运行正常后提交 Pull request
为了更好的同步迁移进度避免提交重复,我们创建了 Project
为了保证review质量,我们建议按类别迁移,请确保一次提交仅包含一个类别
如果你想要加入我们,可以在 这里 申请想要迁移的类别,我们会第一时间相应,感谢关注和参与