Skip to content
← Back to rules

import/no-dynamic-require 제한

작동 방식

모듈 인수로 표현식을 사용하는 가져오기를 금지합니다. 이는 require 또는 import 문에서 런타임에 동적으로 해석되는 경로를 포함합니다.

왜 문제가 되는가?

런타임에 해석되는 표현식을 가져오기 문장에서 사용하면, 모듈이 어디서 가져와지는지 확인하기 어려워집니다. 이는 코드 탐색을 복잡하게 만들며, 정적 분석 도구의 작동을 방해할 수 있습니다. 이러한 도구들은 린트, 번들링 및 기타 최적화 작업을 위해 예측 가능한 모듈 경로에 의존하고 있기 때문입니다.

예시

이 규칙에 부적절한 코드 예시:

javascript
require(name);
require(`../${name}`);

이 규칙에 적절한 코드 예시:

javascript
require("../name");
require(`../name`);

구성

이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.

esmodule

type: boolean

기본값: false

true로 설정 시, 동적 모듈 사양을 포함한 import() 표현식도 검사합니다.

사용 방법

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

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

참고 자료