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