Tengo un proyecto hecho con Angular.
Quiero establecer una regla de sangría para el archivo Angular *.html .
Hago eso en mi .eslintrc :
{ "files": ["*.html"], "extends": [ "plugin:@angular-eslint/template/recommended" ], "rules": { "indent": [2, 2] } }Pero esto me da el siguiente error:
TypeError: Cannot read property 'start' of undefinedno entiendo porque
Mi .eslintrc completo
{ "root": true, "ignorePatterns": ["projects/**/*"], "plugins": ["import"], "rules": { "import/no-extraneous-dependencies": [ 2, { "devDependencies": ["**/*spec.ts"] } ], "quotes": [ 2, "single" ], "padded-blocks": "off", "no-plusplus": "off", "object-curly-spacing": [2, "always"], "space-in-parens": [2, "never"], "keyword-spacing": 2, "comma-spacing": 2, "comma-dangle": [2, { "arrays": "always-multiline", "objects": "always-multiline", "functions": "always-multiline" }], "key-spacing": 2, "space-infix-ops": 2, "arrow-spacing": 2 }, "overrides": [ { "files": ["*.ts", "*.js", "*.tsx"], "parserOptions": { "project": ["tsconfig.json"], "createDefaultProgram": true }, "plugins": [ "promise", "jsdoc", "import" ], "extends": [ "plugin:@angular-eslint/recommended", "plugin:@angular-eslint/template/process-inline-templates" ], "rules": { "@angular-eslint/directive-selector": [ "error", { "type": "attribute", "prefix": "fbo", "style": "camelCase" } ], "@angular-eslint/component-selector": [ "error", { "type": "element", "prefix": "fbo", "style": "kebab-case" } ], "indent": [2, 2], "max-lines-per-function": ["error", 75], "promise/catch-or-return": "error", "promise/always-return": "off", "promise/no-return-wrap": "error", "promise/param-names": "error", "promise/no-native": "off", "promise/no-nesting": "warn", "promise/no-promise-in-callback": "warn", "promise/no-callback-in-promise": "warn", "promise/avoid-new": "off", "promise/no-new-statics": "error", "promise/no-return-in-finally": "warn", "promise/valid-params": "warn", "no-useless-constructor": "off", "@typescript-eslint/no-useless-constructor": 2, "import/extensions": "off", "import/prefer-default-export": "off", "@typescript-eslint/no-unused-vars": 2, "no-console": 2, "@typescript-eslint/no-explicit-any": 2, "semi": 2, "linebreak-style": [2, "unix"], "jsdoc/newline-after-description": 0, "jsdoc/no-undefined-types": 0, "jsdoc/check-access": 2, "jsdoc/check-alignment": 2, "jsdoc/check-param-names": 2, "jsdoc/check-property-names": 2, "jsdoc/check-tag-names": 2, "jsdoc/check-types": 2, "jsdoc/check-values": 2, "jsdoc/empty-tags": 2, "jsdoc/implements-on-classes": 2, "jsdoc/require-jsdoc": ["error", { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": false, "ArrowFunctionExpression": false, "FunctionExpression": false } }], "jsdoc/require-description": 2, "jsdoc/require-param": 2, "jsdoc/require-param-description": 2, "jsdoc/require-param-name": 2, "jsdoc/require-param-type": 2, "jsdoc/require-property": 2, "jsdoc/require-property-description": 2, "jsdoc/require-property-name": 2, "jsdoc/require-property-type": 2, "jsdoc/require-returns": 2, "jsdoc/require-returns-check": 2, "jsdoc/require-returns-description": 2, "jsdoc/require-returns-type": 2, "jsdoc/require-yields": 2, "jsdoc/require-yields-check": 2, "jsdoc/valid-types": 2, "@typescript-eslint/explicit-function-return-type": 2, "@typescript-eslint/naming-convention": [ "error", { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[AZ]", "match": true } }, { "selector": "class", "format": ["PascalCase"] } ], "@typescript-eslint/member-ordering": 2 } }, { "files": [ "*.html" ], "extends": [ "plugin:@angular-eslint/template/recommended" ], "rules": { "indent": [2, 2] } } ] }Si usa prettier y eslint al mismo tiempo, la propiedad de sangría del primero no coincide con la propiedad de sangría del último. Mi sugerencia es, si usa más bonito, deshabilitar la regla de sangría de eslint.
Por otro lado, si está utilizando eslint, solo intente reemplazar la propiedad de sangría con lo siguiente:
indent: [2, 2, { SwitchCase: 1}]
Si necesita información al respecto: eslint docs .
Déjame saber si funciona.
Que tenga un lindo día.