no-new-require
禁止对 require
的调用使用 new
运算符
此规则已在 ESLint v7.0.0 中 **弃用**。请在 eslint-plugin-n
中使用相应的规则。
require
函数用于包含存在于单独文件中的模块,例如
var appHeader = require('app-header');
一些模块返回一个构造函数,这可能导致如下代码:
var appHeader = new require('app-header');
不幸的是,这带来了很大的混淆可能性,因为代码作者可能本意是想写:
var appHeader = new (require('app-header'));
因此,通常最好禁止此特定表达式。
规则详情
此规则旨在消除 new require
表达式的使用。
此规则的 **错误** 代码示例
在在线运行中打开
/*eslint no-new-require: "error"*/
var appHeader = ;
此规则的 **正确** 代码示例
在在线运行中打开
/*eslint no-new-require: "error"*/
var AppHeader = require('app-header');
var appHeader = new AppHeader();
何时不使用它
如果您正在使用 require
的自定义实现,并且您的代码永远不会在预期使用标准 require
(CommonJS、Node.js、AMD)的项目中使用,则可以安全地关闭此规则。
版本
此规则是在 ESLint v0.6.0 中引入的。