no-require-imports
禁止调用
require()
。
优先使用较新的 ES6 风格导入而不是require()
。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-require-imports": "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 禁用注释针对这些特定情况,而不是完全禁用此规则。