always_use_package_imports 린트 규칙
always_use_package_imports 린트 규칙
lib/에 있는 파일은 상대 임포트 대신 패키지 임포트를 쓰도록 안내하는 린트 규칙이에요. 상대 임포트와 절대 임포트를 섞어 쓰면 같은 멤버를 두 가지 방식으로 임포트하는 혼란이 생길 수 있어요. (Dart 2.10에서 도입)
본문
DO lib/ 안에 있는 파일은 상대 임포트를 피하세요.
상대 임포트와 절대 임포트를 섞어 쓰면 같은 멤버가 서로 다른 두 가지 방식으로 임포트되는 혼란이 생길 수 있어요. 이를 피하는 한 가지 방법은 lib/ 디렉터리 안의 파일에 대해 일관되게 절대 임포트(패키지 임포트)를 쓰는 거예요.
그리고 이 규칙은 prefer_relative_imports와 반대되는 규칙이에요.
avoid_relative_lib_imports를 함께 쓰면 lib/ 디렉터리 외부(예: test/)에서 lib/ 내부 파일을 상대 임포트하는 것도 금지할 수 있어요.
BAD:
import 'baz.dart';
import 'src/bag.dart'
import '../lib/baz.dart';
...
GOOD:
import 'package:foo/bar.dart';
import 'package:foo/baz.dart';
import 'package:foo/src/baz.dart';
...
Incompatible rules
always_use_package_imports 린트 규칙은 다음 규칙과 함께 쓸 수 없어요:
Enable
always_use_package_imports 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 always_use_package_imports를 추가해 주세요:
linter:
rules:
- always_use_package_imports
대신 YAML 맵 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 always_use_package_imports: true를 추가하면 돼요:
linter:
rules:
always_use_package_imports: true