Skip to content
← Back to rules

import/named Nursery

작동 방식

참조된 모듈의 명명된 내보내기 세트에 포함되지 않은 모든 명명된 가져오기가 있는지 확인합니다.

export의 경우, 참조된 모듈에 포함된 모든 명명된 내보내기가 존재하는지 확인합니다.

참고: 패키지의 경우, 플러그인은 package.json에 존재하는 경우 jsnext:main (폐기됨) 또는 module에서 내보내기 이름을 찾습니다. 예를 들어, Redux의 npm 모듈은 이 키를 포함하고 있으며, 따라서 린트가 가능합니다.

무시되거나 명확하게 ES 모듈이 아닌 모듈 경로는 가져올 때 보고되지 않습니다. 유형 가져오기 및 내보내기(예: Flow에서 사용하는 것)는 항상 무시됩니다.

왜 나쁜가요?

참조된 모듈에 존재하지 않는 이름을 가져오거나 내보내는 것은 런타임 오류와 혼란을 초래할 수 있습니다. 특정 기능이 이용 가능하다고 잘못 인식하게 만들 수 있으며, 코드 유지보수와 이해를 어렵게 만듭니다. 이 규칙은 코드가 실제로 제공되는 내보내기를 정확히 반영하도록 도와주어 신뢰성을 높입니다.

예제

다음과 같이 가정합니다:

js
// ./foo.js
export const foo = "I'm so foo";

이 규칙에 잘못된 코드 예제:

js
// ./baz.js
import { notFoo } from "./foo";

// 재내보내기
export { notFoo as defNotBar } from "./foo";

// 만약 사용 가능한 경우 'jsnext:main'을 따릅니다
import { dontCreateStore } from "redux";

이 규칙에 올바른 코드 예제:

js
// ./bar.js
import { foo } from "./foo";

// 재내보내기
export { foo as bar } from "./foo";

// jsnext:main이 없는 노드 모듈은 기본적으로 분석되지 않습니다
// (import/ignore 설정)
import { SomeNonsenseThatDoesntExist } from "react";

사용 방법

구성 파일이나 커맨드 라인을 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "plugins": ["import"],
  "rules": {
    "import/named": "error"
  }
}
bash
oxlint --deny import/named --import-plugin

참고 자료