avoid_relative_lib_imports: lib/ 안 파일의 상대 임포트를 피하세요

avoid_relative_lib_imports: lib/ 안 파일의 상대 임포트를 피하세요

avoid_relative_lib_importslib/ 디렉터리 안에 있는 파일을 상대 경로로 임포트하지 말라고 알려주는 린트(lint) 규칙이에요. 임포트 방식을 통일해 혼란을 줄여줘요.

출처: avoid_relative_lib_imports

본문

상세 설명

lib/ 안에 있는 파일은 상대 임포트를 피하세요. 상대 임포트와 절대 임포트를 섞어 쓰면, 같은 멤버를 두 가지 다른 방식으로 임포트하게 되어 혼란이 생길 수 있어요. 이를 피하는 쉬운 방법은 경로에 lib/가 포함된 상대 임포트를 아예 없애는 거예요.

lib/ 안에 있는 파일 사이의 상대 임포트를 금지하려면 always_use_package_imports 규칙을 쓸 수도 있어요.

BAD:

import 'package:foo/bar.dart';

import '../lib/baz.dart';

...

GOOD:

import 'package:foo/bar.dart';

import 'baz.dart';

...

활성화하기

avoid_relative_lib_imports 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 avoid_relative_lib_imports를 추가해요.

linter:
  rules:
    - avoid_relative_lib_imports

대신 YAML map 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 avoid_relative_lib_imports: true를 추가해요.

linter:
  rules:
    avoid_relative_lib_imports: true

참고로 이 규칙은 자동 수정(fix)이 제공돼요.

더 알아보기