n/no-extraneous-require
April 30, 2026 ยท View on GitHub
๐ Disallow require() expressions which import extraneous modules.
๐ผ This rule is enabled in the following configs: ๐ข recommended-module, โ
recommended-script.
If a require()'s target is extraneous (it's not listed in your package.json), the program may work locally but can break after dependencies are re-installed. This can cause issues for your team/contributors. If a declaration source is extraneous yet consistently works for you and your team, it might be a transitive dependency (a dependency of another dependency). Transitive dependencies should still be added as an explicit dependency in your package.json to avoid the risk of a dependency potentially changing or removing the transitive dependency.
Additionally, the transitive dependency could be a dev dependency, meaning your code could work in development but not in production.
This rule disallows require() of extraneous modules.
๐ Rule Details
This rule warns require() of extraneous modules.
Options
{
"rules": {
"n/no-extraneous-require": ["error", {
"allowModules": [],
"resolvePaths": [],
"tryExtensions": []
}]
}
}
allowModules
This can be configured in the rule options or as a shared setting settings.allowModules.
Please see the shared settings documentation for more information.
resolvePaths
This can be configured in the rule options or as a shared setting settings.resolvePaths.
Please see the shared settings documentation for more information.
resolverConfig
This can be configured in the rule options or as a shared setting settings.resolverConfig.
Please see the shared settings documentation for more information.
convertPath
This can be configured in the rule options or as a shared setting settings.convertPath.
Please see the shared settings documentation for more information.
tryExtensions
This can be configured in the rule options or as a shared setting settings.tryExtensions.
Please see the shared settings documentation for more information.