prefer_relative_imports: `lib/` 안 파일은 상대 임포트를 써요

prefer_relative_imports: lib/ 안 파일은 상대 임포트를 써요

lib/ 디렉터리 안의 파일을 임포트할 때 절대 경로(package:)와 상대 경로를 섞어 쓰면 같은 멤버를 두 가지 방식으로 불러오는 혼란이 생길 수 있어요. prefer_relative_imports 린터 규칙은 lib/ 안 파일은 상대 임포트를 쓰도록 일관성을 지켜주는 규칙이에요.

출처: Prefer relative imports for files in lib/

본문

Details

lib/ 디렉터리 안의 파일에는 상대 임포트(relative import)를 쓰는 걸 권장해요.

상대 임포트와 절대 임포트를 섞어 쓰면 같은 멤버를 서로 다른 방식으로 임포트하게 되어 혼동이 생길 수 있어요. 이걸 피하는 한 가지 방법은 lib/ 디렉터리 안에 있는 파일은 항상 상대 임포트를 쓰도록 일관성을 유지하는 거예요.

BAD:

import 'package:my_package/bar.dart';

GOOD:

import 'bar.dart';

Incompatible rules

prefer_relative_imports 린터는 다음 규칙과 함께 쓸 수 없어요.

  • always_use_package_imports

Enable

prefer_relative_imports 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 prefer_relative_imports를 추가해요.

linter:
  rules:
    - prefer_relative_imports

대신 YAML 맵(map) 문법으로 린터 규칙을 설정하고 있다면 linter > rules 아래에 prefer_relative_imports: true를 추가해요.

linter:
  rules:
    prefer_relative_imports: true

더 알아보기