@snabcentr/eslint-config

Библиотека стилей оформления JS/TS/Vue/HTML кода.
5,237
Install
npm install @snabcentr/eslint-config
Latest Version:5.0.3
Vue:3
License:ISC
Last Updated:Oct 14, 2026
Links: npm
Maintainer: sergeyssmirnov

ESLint Style

Библиотека стилей оформления JS/TS/Vue/HTML кода.

Установка

Для установки библиотеки и зависимостей в терминале необходимо выполнить:

npm install --save-dev @snabcentr/eslint-config

Требования

  • ESLint ^9.39 (flat config), Node.js 20+.
  • Для Angular-проектов — @angular-eslint@^21 (Angular CLI 21). Для проектов на ESLint 8 / .eslintrc и Angular 20 и ниже используйте ветку 4.x (@snabcentr/eslint-config@4).

Подключение

Конфигурация экспортирует массив flat-конфигов. В файле eslint.config.cjs в корне проекта его необходимо распаковать в массив конфигурации:

module.exports = [
    // Для Angular приложения
    ...require('@snabcentr/eslint-config/angular-defaults.cjs'),

    // Для Vue3 приложения
    ...require('@snabcentr/eslint-config/vue-defaults.cjs'),
];

Пример Vue3 конфигурации

Для Vue3 приложения конфигурация может выглядеть следующим образом (файл eslint.config.cjs):

const globals = require('globals');

module.exports = [
    ...require('@snabcentr/eslint-config/vue-defaults.cjs'),
    {
        languageOptions: {
            globals: {
                ...globals.browser
            }
        }
    }
];

По аналогии формируются и другие конфигурации.

Миграция с версии 4.x (ESLint 8, .eslintrc)

  1. Обновите eslint до 9, @snabcentr/eslint-config до 5.x и плагины до peer-версий (npm install предупредит о несоответствиях).
  2. Замените .eslintrc.* на eslint.config.cjs (см. пример выше). env заменяется на languageOptions.globals (пакет globals), ignorePatterns — на { ignores: [...] }, overrides — на отдельные объекты с files.
  3. Уберите из скриптов --ignore-path и --ext: исключения задаются через ignores, расширения определяются по files.
  4. Обновите настройки IDE (eslint.useFlatConfig), lint-staged и CI.
  5. tsconfig.eslint.json больше не нужен, если проект использует projectService (включён в конфигурации).

Что изменилось в самой конфигурации:

  • Пакет eslint-config-airbnb-base (не поддерживает flat config) заменён правилами src/rules/airbnb.cjs, перенесёнными из версии 15.0.0 без изменений.
  • eslint-plugin-file-progress удалён (версия для ESLint 9 отсутствует).
  • eslint-plugin-rxjs заменён форком @smarttools/eslint-plugin-rxjs (префикс правил — @smarttools/rxjs/); eslint-plugin-rxjs-angular и eslint-plugin-html удалены.
  • Обновлены eslint-plugin-jsdoc (65), eslint-plugin-sonarjs (4), eslint-plugin-unicorn (65), eslint-plugin-lodash (8), @html-eslint/* (0.67), eslint-plugin-jest (29): часть правил в них переименована, добавлена или удалена.
  • Отчёт о неиспользуемых директивах eslint-disable отключён (linterOptions.reportUnusedDisableDirectives: 'off'), как в ESLint 8; при необходимости включите в своём eslint.config.cjs.
  • Шаблоны Angular проверяются без обработки inline-шаблонов в *.component.ts.

Prettier

Отвечает за форматирование кода.

Пример конфигурации

Для объявления конфигурации создайте файл .prettierrc.json в корне проекта со следующим содержимым:

"@snabcentr/eslint-config/prettier-defaults.json"

Отключение правила автоматического форматирования Prettier

В раздел rules конфигурации ESLint проекта (файл eslint.config.cjs) необходимо добавить правило:

{
    rules: {
        'prettier/prettier': 'off'
    }
}

Related Packages

@vue/create-eslint-config

Utility to setup ESLint in Vue.js projects.

27,225 52
eslint-config-ktsn-vue

ESLint config for Vue.js project

12,758 1
@detools/eslint-config-vue

Eslint Shared Config for Vue based on AirBnB Styleguide

8,977 1
@calipsa/eslint-config-vue

Shareable eslint vue config for Calipsa

5,030
@nextcloud/eslint-config

Eslint shared config for nextcloud apps and libraries

1,036,641 9

Version History

Version Released License
5.0.3 ISC
4.3.0 ISC
4.2.0 ISC
4.1.0 ISC
4.0.0 ISC
Pre-releases (3)
Version Released License
5.0.0-rc3 ISC
5.0.0-rc2 ISC
5.0.0-rc1 ISC