implementation_imports 린트: 다른 패키지의 lib/src 디렉터리를 import할 때
implementation_imports 린트: 다른 패키지의 lib/src 디렉터리를 import할 때
Dart 분석기가 내보내는 린트(lint) 규칙에는 이름이 있어요. implementation_imports는 다른 패키지의 lib/src 디렉터리 안에 있는 라이브러리를 import할 때 분석기가 알려주는 린트 규칙이에요. lib/src 안에 있는 코드는 패키지의 내부 구현이기 때문에, 다른 패키지에서 직접 import하지 않는 것이 pub 패키지 컨벤션이에요.
본문
설명
분석기는 import가 다른 패키지의 lib/src 디렉터리 안에 있는 라이브러리를 참조할 때 이 진단을 만들어요. 이는 pub 패키지의 컨벤션을 위반하는 것이에요.
예시
다음 코드는 그 코드가 ffi 패키지의 일부가 아니라고 가정했을 때, import하는 라이브러리가 최상위 src 디렉터리 안에 있기 때문에 이 진단이 나와요.
import 'package:ffi/src/allocation.dart';
흔한 해결 방법
import하는 라이브러리에 공개 API의 일부인 코드가 들어 있다면, 공개 API를 export하는 공개 라이브러리를 import해요.
import 'package:ffi/ffi.dart';
import하는 라이브러리가 패키지의 공개 API가 아니라면, 가능하다면 목표를 달성할 다른 방법을 찾거나, 패키지 작성자에게 그걸 공개 API에 포함시켜 달라고 이슈(issue)를 열어요.