Skip to content
← Back to rules

eslint/no-duplicate-imports 스타일

An auto-fix is available for this rule.

작동 방식

중복 모듈 가져오기를 허용하지 않습니다.

왜 문제가 되는가?

각 모듈당 하나의 가져오기 문을 사용하면, 해당 모듈에서 가져오는 모든 항목을 한 줄에 보여주므로 코드가 더 명확해집니다.

예시

이 규칙에 대한 잘못된 코드 예시:

다음 예시에서 1번 줄의 모듈 가져오기가 3번 줄에서도 반복됩니다. 이 둘을 결합하여 가져오기 목록을 더 간결하게 만들 수 있습니다.

js
import { merge } from "module";
import something from "another-module";
import { find } from "module";

이 규칙에 대한 올바른 코드 예시:

js
import { merge, find } from "module";
import something from "another-module";

구성

이 규칙은 다음 속성을 가진 구성 객체를 받습니다.

allowSeparateTypeImports

type: boolean

기본값: false

true로 설정되면, 값 식별자(인라인 타입 또는 타입 가져오기)만 포함된 가져오기는 값 식별자를 포함한 가져오기와 별개로 간주되며, 동일한 모듈에서 별도의 가져오기 문으로 가져올 수 있습니다.

allowSeparateTypeImportstrue로 설정되었을 때의 올바른 코드 예시:

js
import { foo } from "module";
import type { Bar } from "module";
js
import { type Foo } from "module";
import type { Bar } from "module";

includeExports

type: boolean

기본값: false

true로 설정되면 이 규칙은 또한 내보내기(export ... from 'module')를 확인하여, 같은 모듈에 대해 재내보내기와 일반적인 가져오기 문이 동시에 존재하는지 확인합니다. 이 경우 두 개의 문이 동일한 모듈에서 가져오기를 수행하므로 규칙 위반으로 간주됩니다.

includeExportstrue로 설정되었을 때의 잘못된 코드 예시:

js
import { merge } from "module";

export { find } from "module"; // 재내보내기이며, 가져오기이자 내보내기입니다.

includeExportstrue로 설정되었을 때의 올바른 코드 예시:

다른 모듈에서 재내보내기를 할 경우, 가져오기를 import 문에 추가하고 직접 내보내야 하며, export ... from을 사용해서는 안 됩니다.

js
import { merge } from "lodash-es";
export { merge as lodashMerge };
js
import { merge, find } from "module";

// 위의 가져오기와 병합할 수 없습니다
export * as something from "module";

// 다른 방식으로 작성할 수 없습니다
export * from "module";

사용 방법

구성 파일이나 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "no-duplicate-imports": "error"
  }
}
bash
oxlint --deny no-duplicate-imports

참고 자료