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