ng add @angular-eslint/schematics
A telepítés után konfigurálhatod az .eslintrc fájlt a projekted gyökerében, vagy frissítheted a meglévő konfigurációs fájlt a projekted egyedi igényeinek megfelelően.
{
files: ['*.html'],
extends: ['plugin:@angular-eslint/template/recommended'],
rules: {
'@angular-eslint/template/prefer-self-closing-tags': ['error']
}
},
.eslintrc full
module.exports = {
root: true,
ignorePatterns: ['src/main.server.ts'],
overrides: [
{
files: ['*.ts', '*.js'],
plugins: ['simple-import-sort', 'unused-imports', 'sort-class-members', '@stylistic/js', 'import'],
extends: ['prettier', 'plugin:prettier/recommended', 'plugin:@angular-eslint/template/process-inline-templates'],
rules: {
'comma-dangle': ['error', 'never'],
'spaced-comment': ['error', 'always'],
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
'import/no-unresolved': 'off',
'import/named': 'off',
'import/namespace': 'error',
'import/default': 'error',
'import/export': 'error',
'unused-imports/no-unused-imports': 'error',
'unused-imports/no-unused-vars': 0,
'no-duplicate-imports': 'error',
'@typescript-eslint/semi': ['error'],
'@typescript-eslint/no-explicit-any': 0,
'@typescript-eslint/no-non-null-assertion': 0,
'@typescript-eslint/no-empty-function': 'off',
'@stylistic/js/lines-around-comment': [
'warn',
{
beforeBlockComment: true,
allowBlockStart: true
}
],
'@typescript-eslint/no-unused-vars': [
'warn',
{
argsIgnorePattern: '^_'
}
],
'prettier/prettier': [
'error',
{
trailingComma: 'none',
endOfLine: 'auto'
}
],
'sort-class-members/sort-class-members': [
'error',
{
order: [
'[conventional-private-properties]',
'[properties]',
'[static-properties]',
'[arrow-function-properties]',
'[accessor-pairs]',
'[getters]',
'[setters]',
'[constructor]',
'[static-methods]',
'[methods]',
'[async-methods]',
'[conventional-private-methods]',
'[event-handlers]',
'[everything-else]'
],
groups: {
'event-handlers': [{ name: '/on.+/', type: 'method' }]
},
accessorPairPositioning: 'getThenSet',
stopAfterFirstProblem: true
}
],
'@typescript-eslint/lines-between-class-members': [
'error',
{ enforce: [{ blankLine: 'always', prev: '*', next: 'method' }] }
]
}
},
{
files: ['*.ts'],
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: ['tsconfig.json'],
createDefaultProgram: true
},
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@angular-eslint/recommended',
'plugin:@angular-eslint/template/process-inline-templates',
'plugin:rxjs/recommended',
'plugin:prettier/recommended'
],
plugins: ['functional'],
rules: {
'@angular-eslint/directive-selector': [
'error',
{
type: 'attribute',
prefix: 'hello',
style: 'camelCase'
}
],
'@angular-eslint/component-selector': [
'error',
{
type: 'element',
prefix: 'hello',
style: 'kebab-case'
}
],
'@typescript-eslint/ban-types': [
'error',
{
types: {
Object: false
}
}
],
'arrow-parens': ['error', 'always'],
'no-trailing-spaces': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'functional/prefer-readonly-type': ['error', { ignoreClass: true, ignoreInterface: true }],
'@typescript-eslint/prefer-readonly': ['error'],
'rxjs/no-implicit-any-catch': 'off',
'@typescript-eslint/explicit-function-return-type': 'error',
'rxjs/finnish': [
'error',
{
names: {
store: false
}
}
],
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'memberLike',
modifiers: ['private'],
format: ['camelCase'],
leadingUnderscore: 'require'
},
{
selector: 'memberLike',
modifiers: ['public'],
format: null,
leadingUnderscore: 'forbid'
},
{
selector: 'typeLike',
format: ['PascalCase']
}
],
'@typescript-eslint/explicit-member-accessibility': [
'error',
{
accessibility: 'explicit'
}
]
}
},
{
files: ['src/app/core/backend/**/*.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'off'
}
},
{
files: ['*.html'],
extends: ['plugin:@angular-eslint/template/recommended'],
rules: {
'@angular-eslint/template/prefer-self-closing-tags': ['error']
}
},
{
files: ['*.html'],
excludedFiles: ['*inline-template-*.component.html'],
extends: ['plugin:prettier/recommended'],
rules: {
'prettier/prettier': ['error', { parser: 'angular', endOfLine: 'auto' }]
}
}
],
extends: ['plugin:storybook/recommended']
};