Versions

no-new-require

Disallow new operators with calls to require

此规则于 ESLint v7.0.0 中废弃,请使用 eslint-plugin-n 中的对应规则代替。

require 函数用于包含存在于独立文件中的模块,例如:

var appHeader = require('app-header');

Some modules return a constructor which can potentially lead to code such as:

var appHeader = new require('app-header');

不幸的是,这引入了一个很高的混淆可能性,因为代码作者很可能是想写。

var appHeader = new (require('app-header'));

出于这个原因,通常最好是不允许这种特殊的表达方式。

规则细节

这条规则的目的是消除对 new require 表达式的使用。

使用此规则的错误示例:

Open in Playground
/*eslint no-new-require: "error"*/

var appHeader = new require('app-header');

使用此规则的正确示例:

Open in Playground
/*eslint no-new-require: "error"*/

var AppHeader = require('app-header');
var appHeader = new AppHeader();

何时不用

如果你正在使用 require 的自定义实现,并且你的代码永远不会被用于期望使用标准 require 的项目中(CommonJS、Node.js、AMD),你可以安全地关闭这个规则。

Version

This rule was introduced in ESLint v0.6.0.

Resources

更改语言