import/no-unassigned-import 의심스러움
동작 방식
이 규칙은 모듈을 가져오지만 결과를 할당하지 않은 경우, 측면 효과가 있는 모듈을 제거하기 위해 경고합니다.
왜 좋지 않은가?
CommonJS의 require와 ES 모듈의 import 구문 모두, 모듈을 가져오되 그 결과를 사용하지 않을 수 있습니다. 이는 변수에 모듈을 할당하지 않음으로써 명시적으로 수행될 수 있습니다. 이러한 행위는 다음 중 하나를 의미할 수 있습니다:
- 모듈이 가져오긴 했으나 사용되지 않음
- 모듈이 측면 효과를 가짐. 측면 효과가 있으면, 모듈이 실제로 사용되고 있는지 또는 제거될 수 있는지 알기 어렵습니다. 또한 애플리케이션의 일부를 테스트하거나 모킹하는 것을 더 어렵게 만들 수 있습니다.
예시
이 규칙에 대한 잘못된 코드 예시:
js
import "should";
require("should");이 규칙에 대한 올바른 코드 예시:
js
import _ from "foo";
import _, { foo } from "foo";
import _, { foo as bar } from "foo";
const _ = require("foo");
const { foo } = require("foo");
const { foo: bar } = require("foo");
bar(require("foo"));구성
이 규칙은 다음 속성을 가진 구성 객체를 수락합니다:
allow
type: string[]
기본값: []
특정 모듈에 대해 할당되지 않은 가져오기를 허용할 글로브 패턴 목록입니다. 예를 들어: { "allow": ["**/*.css"] }는 .css로 끝나는 모든 모듈에 대해 할당되지 않은 가져오기를 허용합니다.
사용 방법
이 규칙을 구성 파일이나 CLI에서 활성화하려면 다음과 같이 사용할 수 있습니다:
json
{
"plugins": ["import"],
"rules": {
"import/no-unassigned-import": "error"
}
}bash
oxlint --deny import/no-unassigned-import --import-plugin