likes
comments
collection
share

Flutter之flutter_lints

作者站长头像
站长
· 阅读数 32

大家都有过编写Dart代码后,倒头来却被集成开发环境(IDE)挑错的经验,

Flutter之flutter_lints

这是因为Dart分析器发现你编写的代码尚有可改进之处,也就是"lints"

Flutter之flutter_lints

lints是你的代码所应遵循的语法规则,就好比最佳实践一样,所以无论何时触发lint,它都会通知代码不符最佳实践。

Flutter之flutter_lints

预定义的规则集合称为“规则集”。

无论何时运行flutter_create,您的Flutter项目会自动纳入一个名为flutter lints的包

analysis_options.yaml

include: package:flutter_lints/flutter.yaml

这是Flutter开发所使用的预定义规则集,此包会使用Darts所推荐的规则集,并以新增Flutter规则的方式,就这个包来编译构建

include: package:lints/recommended.yaml

linter:
  rules:
    - avoid_print
    - avoid_unnecessary_containers,
    - avoid_web_libraries_in_flutter
    - no_logic_in_create_state
    - prefer_const_constructor
    - prefer_const_constructors_in_immutables
    - prefer_const_declarations
    - prefer_const_literals_to_create_immutables
    - sized_box_for_whitespace
    - sort_child_properties_last
    - use_build_context_synchronously
    - use_full_hex_values_for_flutter_colors
    - use_key_in_widget_constructors

例如sort_child_properties_last

FloatingActionButton(
    child: Icon(Icons.add),
    onPressed: _incrementCounter,
    tooltip: 'Increment',
)

改为

FloatingActionButton(
    onPressed: _incrementCounter,
    tooltip: 'Increment',
    child: Icon(Icons.add),
)

例如 avoid_print

void f(int x) {
    print('debug: $x');
    ...
}

改为

void f(int x) {
    debugPrint('debug: $x');
    ...
}

许多lint规则还附带预定义的修复程序

Flutter之flutter_lints

可以的话,运行dart fix --apply或在IDE中应用Quick Fix,Dart将自动为您修复代码以符合最佳实践。

Flutter之flutter_lints

想更加了解lint的作用以及是否有可用的修复程序,请参见Dart lints

无需执行任何操作便能使用flutter_lints,因为Flutter create已预设包含flutter_lints。不过现在知道Flutter lint是既有的包,务必要确保已遵循良好的编码。

想深入了解flutter_lints以及其他的包,请参考pub.dev

原文翻译自视频:视频地址