JS.BASE.NO.NEW.REQUIRE

Disallow 'new' operators with calls to 'require'

This rule was deprecated in ESLint v7.0.0. Please use the corresponding rule in eslint-plugin-node (https://github.com/mysticatea/eslint-plugin-node).

The require function is used to include modules that exist in separate files, such as:

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

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

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

Unfortunately, this introduces a high potential for confusion since the code author likely meant to write:

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

For this reason, it is usually best to disallow this particular expression.

Rule Details

This rule aims to eliminate use of the new require expression.

Examples of incorrect code for this rule:

Copy
/*eslint no-new-require: "error"*/

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

Examples of correct code for this rule:

Copy
/*eslint no-new-require: "error"*/

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

When Not To Use It

If you are using a custom implementation of require and your code will never be used in projects where a standard require (CommonJS, Node.js, AMD) is expected, you can safely turn this rule off.

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/