Конфигурация eslint моего проекта наследует от airbnb:
module.exports = {
root: true,
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.eslint.json",
},
plugins: ["@typescript-eslint"],
extends: [
"airbnb-base",
"airbnb-typescript/base"
]
};
Я хотел бы немного изменить правило import/no-extraneous-dependencies, которое равно уже настроен с конфигом airbnb.
Я заинтересован в добавлении еще одного файла, разрешенного для импорта devDependencies:
rules: {
"import/no-extraneous-dependencies": [
"error",
{
devDependencies: ["vitest.config.ts"],
},
],
},
Если я сделаю так, как описано выше, то я полностью перезапишу список в 'import/no-extraneous-dependencies'[1].devDependencies и конфигурация, которую я унаследовал от airbnb, будет потеряна. Как добавить еще один файл в список devDependencies вместо полной перезаписи конфигурации правила?





Похоже конфигурации одного правила из разных конфигов как-то не сливаются. Итак, если последняя конфигурация, которая настроила правило import/no-extraneous-dependencies, была airbnb-typescript/base, то мне просто нужно импортировать ее и настроить по мере необходимости.
Ниже приведено решение для моего случая:
const airbnb = require("eslint-config-airbnb-typescript/lib/shared");
const airbnbNoExtraDepsRule = airbnb.rules["import/no-extraneous-dependencies"];
airbnbNoExtraDepsRule[1].devDependencies.push("vitest.config.ts");
module.exports = {
extends: ["airbnb-base", "prettier"],
rules: {
"import/no-commonjs": "on",
"import/no-extraneous-dependencies": airbnbNoExtraDepsRule,
}
};