Skip to content
← Back to rules

import/no-absolute-path 의심스러움

An auto-fix is available for this rule.

작동 방식

이 규칙은 절대 경로를 사용하여 모듈을 가져오도록 금지합니다.

왜 나쁜가?

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 스타일의 definerequire 호출에 대한 종속성 경로가 해결됩니다:

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

참고 자료