Skip to content

Latest commit

 

History

History
84 lines (62 loc) · 2.11 KB

no-extraneous-import.md

File metadata and controls

84 lines (62 loc) · 2.11 KB

Disallow import declarations which import extraneous modules (n/no-extraneous-import)

💼 This rule is enabled in the following configs: 🟢 flat/recommended-module, ✅ flat/recommended-script, ☑️ recommended, 🟢 recommended-module, ✅ recommended-script.

If an import declaration's source is extraneous (it's not written in package.json), the program works in local, but will not work after dependencies are re-installed. It will cause troubles to your team/contributors. This rule disallows import declarations of extraneous modules.

📖 Rule Details

This rule warns import declarations of extraneous modules.

Options

{
    "rules": {
        "n/no-extraneous-import": ["error", {
            "allowModules": [],
            "resolvePaths": []
        }]
    }
}

allowModules

Some platforms have additional embedded modules. For example, Electron has electron module.

We can specify additional embedded modules with this option. This option is an array of strings as module names.

{
    "rules": {
        "n/no-extraneous-import": ["error", {
            "allowModules": ["electron"]
        }]
    }
}

resolvePaths

Adds additional paths to try for when resolving imports. If a path is relative, it will be resolved from CWD.

Default is []

convertPath

  • exclude: TODO
  • include: TODO
  • replace: TODO

Shared Settings

The following options can be set by shared settings. Several rules have the same option, but we can set this option at once.

  • allowModules
  • resolvePaths
// .eslintrc.js
module.exports = {
    "settings": {
        "node": {
            "allowModules": ["electron"],
            "resolvePaths": [__dirname],
        }
    },
    "rules": {
        "n/no-extraneous-import": "error"
    }
}

🔎 Implementation