Skip to content

Latest commit

 

History

History
25 lines (17 loc) · 776 Bytes

no-dynamic-require.md

File metadata and controls

25 lines (17 loc) · 776 Bytes

import-x/no-dynamic-require

The require method from CommonJS is used to import modules from different files. Unlike the ES6 import syntax, it can be given expressions that will be resolved at runtime. While this is sometimes necessary and useful, in most cases it isn't. Using expressions (for instance, concatenating a path and variable) as the argument makes it harder for tools to do static code analysis, or to find where in the codebase a module is used.

This rule forbids every call to require() that uses expressions for the module name argument.

Rule Details

Fail

require(name)
require('../' + name)
require(`../${name}`)
require(name())

Pass

require('../name')
require(`../name`)