import/no-nodejs-modules 风格
它的作用
禁止使用 Node.js 内置模块。对于客户端网页项目(无法访问这些模块)来说非常有用。
为什么这是不好的?
Node.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