Конфигурации для совместного использования
Чтобы поделиться своей конфигурацией ESLint, создайте переиспользуемую конфигурацию. Вы можете опубликовать её на npm, чтобы другие пользователи могли скачать её и использовать в своих проектах ESLint.
На этой странице объясняется, как создать и опубликовать переиспользуемую конфигурацию.
Создание переиспользуемой конфигурации
Переиспользуемые конфигурации — это обычные пакеты npm, экспортирующие объект или массив конфигурации. Для начала создайте модуль Node.js обычным способом.
Вы можете назвать пакет как угодно, однако мы рекомендуем придерживаться одного из следующих соглашений, чтобы его было проще найти:
- Название должно начинаться с
eslint-config-, напримерeslint-config-myconfig. - Для модуля с областью действия npm добавьте
@scope/eslint-configв начало названия или используйте его как префикс, например@scope/eslint-configили@scope/eslint-config-myconfig.
В своём модуле экспортируйте переиспользуемую конфигурацию из файла точки входа модуля main. По умолчанию основной файл точки входа — index.js. Например:
// index.js
export default [
{
languageOptions: {
globals: {
MyGlobal: true,
},
},
rules: {
semi: [2, "always"],
},
},
];
Поскольку файл index.js — это обычный JavaScript, вы можете считывать эти настройки из файла или генерировать их динамически.
Публикация переиспользуемой конфигурации
Когда переиспользуемая конфигурация будет готова, вы можете опубликовать её в npm, чтобы поделиться ею с другими. Мы рекомендуем добавить ключевые слова eslint и eslintconfig в файл package.json, чтобы другим пользователям было проще найти ваш модуль.
В файле package.json следует объявить зависимость от ESLint, используя поле peerDependencies. Для обеспечения совместимости в будущем рекомендуется указывать зависимость с помощью диапазона «>=» и минимальной необходимой версии ESLint. Например:
{
"peerDependencies": {
"eslint": ">= 9"
}
}
Если переиспользуемая конфигурация зависит от плагина или пользовательского парсера, укажите эти пакеты в качестве dependencies в файле package.json.
Использование переиспользуемой конфигурации
Чтобы использовать переиспользуемую конфигурацию, импортируйте пакет в файл eslint.config.js и добавьте его в экспортируемый массив с помощью extends, как показано ниже:
// eslint.config.js
import { defineConfig } from "eslint/config";
import myconfig from "eslint-config-myconfig";
export default defineConfig([
{
files: ["**/*.js"],
extends: [myconfig],
},
]);
Переопределение настроек переиспользуемых конфигураций
Вы можете переопределить настройки переиспользуемой конфигурации, добавив их непосредственно в файл eslint.config.js после импорта этой конфигурации. Например:
// eslint.config.js
import { defineConfig } from "eslint/config";
import myconfig from "eslint-config-myconfig";
export default defineConfig([
{
files: ["**/*.js"],
extends: [myconfig],
// anything from here will override myconfig
rules: {
"no-unused-vars": "warn",
},
},
]);
Совместное использование нескольких конфигураций
Поскольку переиспользуемые конфигурации — это обычные пакеты npm, вы можете экспортировать из одного пакета сколько угодно конфигураций. Помимо указания конфигурации по умолчанию с помощью записи main в файле package.json, вы можете добавить другие переиспользуемые конфигурации: создайте новый файл в пакете npm и укажите на него ссылку в файле eslint.config.js.
Например, можно создать в корневой папке пакета npm файл с именем my-special-config.js и экспортировать из него конфигурацию, например:
// my-special-config.js
export default {
rules: {
quotes: [2, "double"],
},
};
Затем, если пакет называется eslint-config-myconfig, дополнительную конфигурацию можно подключить так:
// eslint.config.js
import { defineConfig } from "eslint/config";
import myconfig from "eslint-config-myconfig";
import mySpecialConfig from "eslint-config-myconfig/my-special-config.js";
export default defineConfig([
{
files: ["**/*.js"],
extends: [myconfig, mySpecialConfig],
// anything from here will override myconfig
rules: {
"no-unused-vars": "warn",
},
},
]);
Дополнительные материалы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/extend/shareable-configs