implementation_ imports
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
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Report an issue.