跳到主要内容

implementation_imports

稳定版
推荐

不要从其他包导入实现文件。

详情

#

来自 pub 包布局文档

不要 从其他包导入实现文件。

lib 目录中的库是公开可见的:其他包可以自由导入它们。但是,包的大部分代码是内部实现库,这些库应该仅由包自身导入和使用。这些库位于 lib 的一个名为 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