メインコンテンツにスキップ

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

もし、linter ルールを設定するために YAML マップ構文を使用している場合は、linter > rules の下に implementation_imports: true を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    implementation_imports: true