import/no-absolute-path 의심스러움
작동 방식
이 규칙은 절대 경로를 사용하여 모듈을 가져오도록 금지합니다.
왜 나쁜가?
Node.js는 /home/xyz/file.js와 같이 절대 경로를 사용하여 모듈을 가져올 수 있도록 허용합니다. 하지만 이는 코드를 특정 컴퓨터에 연결시키는 나쁜 관행이며, 예를 들어 npm을 통해 배포되는 패키지에서는 해당 코드가 사용 불가능하게 됩니다.
예시
이 규칙에 부적절한 코드 예시:
js
import f from "/foo";
import f from "/some/path";
var f = require("/foo");
var f = require("/some/path");이 규칙에 적절한 코드 예시:
js
import _ from "lodash";
import foo from "foo";
import foo from "./foo";
var _ = require("lodash");
var foo = require("foo");
var foo = require("./foo");{ amd: true } 옵션에 대한 부적절한 코드 예시:
js
define("/foo", function (foo) {});
require("/foo", function (foo) {});{ amd: true } 옵션에 대한 적절한 코드 예시:
js
define("./foo", function (foo) {});
require("./foo", function (foo) {});구성
이 규칙은 다음 속성을 가진 구성 객체를 수락합니다:
amd
type: boolean
기본값: false
true로 설정하면, AMD 스타일의 define 및 require 호출에 대한 종속성 경로가 해결됩니다:
js
/* import/no-absolute-path: ["error", { "commonjs": false, "amd": true }] */
define(["/foo"], function (foo) {
/*...*/
}); // 보고됨
require(["/foo"], function (foo) {
/*...*/
}); // 보고됨
const foo = require("/foo"); // explicit `commonjs: false`로 인해 무시됨commonjs
type: boolean
기본값: true
true로 설정하면, CommonJS 스타일의 require 호출에 대한 종속성 경로가 해결됩니다:
js
var foo = require("/foo"); // 보고됨esmodule
type: boolean
기본값: true
true로 설정하면, ES 모듈 import 문에 대한 종속성 경로가 해결됩니다:
js
import foo from "/foo"; // 보고됨사용 방법
이 규칙을 구성 파일 또는 CLI에서 활성화하려면 다음을 사용할 수 있습니다:
json
{
"plugins": ["import"],
"rules": {
"import/no-absolute-path": "error"
}
}bash
oxlint --deny import/no-absolute-path --import-plugin