node/no-path-concat 제한
작동 방식
__dirname 및 __filename과 함께 문자열 연결을 허용하지 않습니다.
왜 좋지 않은가?
Node.js에서 __dirname 및 __filename 전역 변수는 각각 현재 실행 중인 스크립트 파일의 디렉터리 경로와 파일 경로를 포함합니다. 때때로 개발자는 이러한 변수를 사용하여 다른 파일로의 경로를 생성하려고 시도합니다. 예를 들어:
js
var fullPath = __dirname + "/foo.js";그러나 이 방식은 오류 발생 가능성이 높습니다. 왜냐하면 서로 다른 운영 체제에서는 경로 구분자(/ 또는 \)가 다르기 때문입니다. 크로스 플랫폼 파일 경로를 생성하기 위해서는 path.join() 또는 path.resolve()를 사용하는 것이 올바른 방법입니다.
예시
이 규칙에 대해 잘못된 코드 예시:
js
const fullPath1 = __dirname + "/foo.js";
const fullPath2 = __filename + "/foo.js";
const fullPath3 = `${__dirname}/foo.js`;
const fullPath4 = `${__filename}/foo.js`;이 규칙에 대해 올바른 코드 예시:
js
const fullPath1 = path.join(__dirname, "foo.js");
const fullPath2 = path.join(__filename, "foo.js");
const fullPath3 = __dirname + ".js";
const fullPath4 = __filename + ".map";
const fullPath5 = `${__dirname}_foo.js`;
const fullPath6 = `${__filename}.test.js`;사용 방법
이 규칙을 설정 파일 또는 명령줄 인터페이스를 통해 활성화하려면 다음을 사용할 수 있습니다:
json
{
"plugins": ["node"],
"rules": {
"node/no-path-concat": "error"
}
}bash
oxlint --deny node/no-path-concat --node-plugin