跳至主要内容

no-require-imports

禁止调用require()

优先使用较新的 ES6 风格导入而不是require()

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-require-imports": "error"
}
};

在游乐场中尝试此规则 ↗

示例

const lib1 = require('lib1');
const { lib2 } = require('lib2');
import lib3 = require('lib3');
在游乐场中打开

选项

此规则接受以下选项

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$']}

console.log(require('../data.json').version);
在游乐场中打开

何时不使用它

如果您的项目经常使用旧的 CommonJS require,那么此规则可能不适用于您。如果只有您项目的一部分使用了require,那么您可能考虑使用ESLint 禁用注释针对这些特定情况,而不是完全禁用此规则。

资源