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