跳到主要内容

implementation_imports

稳定
推荐

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

详情

#

引自 pub 包布局文档

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

lib 目录内的库是公开可见的:其他包可以自由导入它们。但包的大部分代码是内部实现的库,它们只能由包本身导入和使用。这些库放在 lib 的一个子目录 src 中。如果你觉得有助于组织,可以在 src 中创建子目录。你可以在同一包内的其他 Dart 代码中(例如 lib 中的其他库、bin 中的脚本和测试)自由导入 lib/src 中的库,但绝不能从另一个包的 lib/src 目录导入。这些文件不是包公共 API 的一部分,它们可能会以破坏你的代码的方式发生更改。

错误示例

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

启用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - implementation_imports

如果你使用 YAML 映射语法配置 Linter 规则,请在 linter > rules 下添加 implementation_imports: true

analysis_options.yaml
yaml
linter:
  rules:
    implementation_imports: true