Skip to content
← Back to rules

import/no-nodejs-modules 스타일

작동 방식

노드.js 내장 모듈의 사용을 금지합니다. 브라우저에서 사용할 수 없는 경우, 클라이언트 측 웹 프로젝트에 유용할 수 있습니다.

왜 문제가 되는가?

노드.js 내장 모듈(예: fs, path, crypto)은 브라우저에서 사용할 수 없으므로, 클라이언트 번들에서 이를 가져오면 런타임 오류가 발생하거나, 번들러가 무거운 폴리필/셰이머를 삽입하도록 강제하게 됩니다.
이는 번들 크기를 증가시키며, 서버 전용 로직이 클라이언트에 유출될 수 있고, 환경 불일치 문제를 생산 환경까지 숨기게 할 수도 있습니다.

예시

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

js
import fs from "fs";
import path from "path";

var fs = require("fs");
var path = require("path");

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

js
import _ from "lodash";
import foo from "foo";
import foo from "./foo";

var _ = require("lodash");
var foo = require("foo");
var foo = require("./foo");

/* import/no-nodejs-modules: ["error", {"allow": ["path"]}] */
import path from "path";

구성

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

allow

type: string[]

허용되는 모듈 이름 배열입니다. 기본값은 빈 배열입니다.

사용 방법

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

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

참고자료