内容

implementation_imports

不要从另一个包导入实现文件。

此规则在 Dart 2.0 中可用。

规则集:推荐flutter

详情

#

来自 pub 包布局文档

不要从另一个包导入实现文件。

lib 内的库是公开可见的:其他包可以自由导入它们。但包的大部分代码是内部实现库,这些库应该只被包本身导入和使用。这些库位于 lib 的子目录 src 中。如果这有助于你组织代码,你可以在其中创建子目录。

你可以自由地从同一包中的其他 Dart 代码(如 lib 中的其他库、bin 中的脚本和测试)中导入位于 lib/src 中的库,但你不应该从另一个包的 lib/src 目录导入。这些文件不是包公共 API 的一部分,它们可能会以可能破坏你代码的方式发生改变。

错误

dart
// In 'road_runner'
import 'package:acme/src/internals.dart';

用法

#

要在你的 analysis_options.yaml 文件中启用 implementation_imports 规则,请在 linter > rules 下添加 implementation_imports

analysis_options.yaml
yaml
linter:
  rules:
    - implementation_imports