implementation_ imports
Learn about the implementation_imports linter rule.
Don't import implementation files from another package.
Details
#From the pub package layout doc:
DON'T import implementation files from another package.
The libraries inside lib are publicly visible:
other packages are free to import them. But much of a
package's code is internal implementation libraries that
should only be imported and used by the package itself. Those
go inside a subdirectory of lib called
src. You can create subdirectories in there if it
helps you organize things.
You are free to import libraries that live in
lib/src from within other Dart code in the same
package (like other libraries in lib, scripts in
bin, and tests) but you should never import from
another package's lib/src
directory. Those files are not part of the package's public
API, and they might change in ways that could break your code.
BAD:
// In 'road_runner'
import 'package:acme/src/internals.dart';
Enable
#
To enable the implementation_imports rule, add
implementation_imports under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- implementation_imports
If you're instead using the YAML map syntax to configure
linter rules, add
implementation_imports: true under
linter > rules:
linter:
rules:
implementation_imports: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.