禁止使用 var 导入 require
禁止使用
require
语句,除非在导入语句中。
✅
在 "plugin:@typescript-eslint/recommended"
的 ESLint 配置 中扩展此规则。
换句话说,禁止使用 var foo = require("foo")
形式。请改用 ES6 风格的导入或 import foo = require("foo")
导入。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-var-requires": "error"
}
};
在游乐场中尝试此规则 ↗
示例
- ❌ 错误
- ✅ 正确
选项
此规则接受以下选项
type Options = [
{
/** Patterns of import paths to allow requiring from. */
allow?: string[];
},
];
const defaultOptions: Options = [{ allow: [] }];
allow
一个字符串数组。这些字符串将被编译成带有 u
标志的正则表达式,并用于测试导入的路径。一个常见的用例是允许导入 package.json
。这是因为 package.json
通常位于 TS 根目录之外,因此静态导入它会导致根目录冲突,尤其是在启用 resolveJsonModule
的情况下。您也可以使用它来允许导入任何 JSON,如果您的环境不支持 JSON 模块,或者在 import
语句无法工作的情况下使用它。
使用 {allow: ['/package\\.json$']}
何时不使用它
如果您的项目经常使用旧的 CommonJS require
,那么此规则可能不适用于您。如果您的项目中只有一部分使用了 require
,那么您可能需要考虑使用 ESLint 禁用注释 来处理这些特定情况,而不是完全禁用此规则。