Package detail

eslint-plugin-import-group

ilia-brykin71MIT2.0.2

ESLint plugin for enforcing import grouping and named import sorting

eslint, eslintplugin, eslint-plugin, plugin

readme

eslint-plugin-import-group

ESLint plugin for enforcing import grouping and named import sorting.

Installation

You can install eslint-plugin-import-group using npm, yarn, or pnpm:

# Using npm
$ npm install eslint-plugin-import-group --save-dev

# Using yarn
$ yarn add eslint-plugin-import-group --dev

# Using pnpm
$ pnpm add eslint-plugin-import-group --save-dev

Usage

ESLint Configuration

eslint.config.js or eslint.config.mjs

import groupImportsPlugin from "eslint-plugin-import-group";

export default {
  plugins: {
    "group-imports": groupImportsPlugin,
  },
  rules: {
    "group-imports/named-imports": ["warn", {
      sort: "asc",
      newline: true,
    }],
    "group-imports/group-imports": ["warn", {
      groups: [
        {
          name: "Core Imports",
          patterns: [
            { exact: "vue" },
            { exact: "vue-router" },
            { exact: "aloha-vue" },
          ],
        },
        {
          name: "Components",
          patterns: [
            { regex: ".vue$" },
          ],
          sort: "asc",
        },
        {
          name: "Third-Party Libraries",
          patterns: [
            { exact: "_rest_", sort: "desc" },
            { exact: "lodash-es" },
          ],
        },
      ],
      emptyLinesBetweenGroups: 1,
    }],
  },
};

Rules

Below is a summary of the available rules:

Rule Description Fixable
group-imports Enforces specific grouping and ordering of import statements based on custom-defined groups.
named-imports Enforces alphabetical sorting of named imports and optionally formats them with new lines.

Disabling Conflicting Rules

To avoid conflicts, disable import/order from eslint-plugin-import and sort-imports from ESLint:

rules: {
  "import/order": "off",
  "sort-imports": "off",
}