Я создал плагин/библиотеку NX с именем nx
.
Плагин package.json
определяет цель линтинга:
"lint": {
"executor": "@nrwl/linter:eslint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [
"libs/nx/executors.json",
"libs/nx/package.json",
"libs/nx/src/executors",
"libs/nx/src/generators"
]
}
}
.eslintrc.json
это:
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*"]
}
Расширенный .eslintrc.json
это:
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nrwl/nx"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {
"@nrwl/nx/enforce-module-boundaries": [
"error",
{
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nrwl/nx/typescript"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nrwl/nx/javascript"],
"rules": {}
},
{
"files": "*.json",
"parser": "jsonc-eslint-parser",
"rules": {}
}
]
}
Проблема в том, что директория генератора содержит шаблоны для создания ts
приложений, и у каждого приложения есть свой .eslintrc.json
файл. Поэтому, когда я запускаю linting по какой-то причине, он анализирует эти файлы, что приводит к ошибке:
Failed to load config "../../.eslintrc.base.json" to extend from.
Referenced from:
[...]/libs/nx/src/generators/application/template/.eslintrc.json
Я попытался обновить ignorePatterns
моей конфигурации
{
"ignorePatterns": ["!**/*", "**/*.eslintrc.json"]
}
но безуспешно. Как я могу решить эту проблему?
К сожалению, исполнитель Nx lint не позволяет настроить ESLint таким образом. Однако вы можете запустить eslint самостоятельно, используя исполняющую команду.
Замените цель «lint» на:
"lint": {
"command": "eslint --no-eslintrc --config libs/nx/.eslintrc.json <files/directories you want to lint, e.g. "libs/nx">,
"outputs": ["{options.outputFile}"]
}
(Хотя я бы рекомендовал назвать вашу библиотеку иначе, чем nx, так как это запутает пользователей)