Skip to content
← Back to rules

import/no-nodejs-modules 风格

它的作用

禁止使用 Node.js 内置模块。对于客户端网页项目(无法访问这些模块)来说非常有用。

为什么这是不好的?

Node.js 内置模块(例如 fspathcrypto)在浏览器中不可用,因此在客户端打包中导入它们会导致运行时错误,或迫使打包工具注入庞大的多填充/垫片代码。
这会增加包体积,可能导致仅服务器端的逻辑泄漏到客户端,并可能在生产环境中才暴露环境不匹配的问题。

示例

以下为该规则的 错误 用法示例:

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

参考资料