2

I'm using ESLint in an Angular project.

I set-up the js files in the cypress folder (my e2e tests) to have different rules by anding overrides in the .eslintrc.js file, like so:

module.exports = {
  env: {
    browser: true,
    es6: true,
    node: true
  },
  extends: ["prettier", "prettier/@typescript-eslint", "plugin:prettier/recommended"],
  parser: "@typescript-eslint/parser",
  parserOptions: {
    project: "tsconfig.json",
    sourceType: "module"
  },
  plugins: [ 
    "eslint-plugin-import",
    "eslint-plugin-jsdoc",
    "@angular-eslint/eslint-plugin",
    "@typescript-eslint",
    "@typescript-eslint/tslint",
    "eslint-plugin-html"
 ],
  rules: {
    "prefer-const": "error",
    "@angular-eslint/component-class-suffix": "error",
    "@angular-eslint/directive-class-suffix": "error",
    "@angular-eslint/no-host-metadata-property": "error",
    "@angular-eslint/no-input-rename": "error",
    "@angular-eslint/no-inputs-metadata-property": "error",
    "@angular-eslint/no-output-on-prefix": "error",
    "@angular-eslint/no-output-rename": "error",
    "@angular-eslint/no-outputs-metadata-property": "error",
    "@angular-eslint/use-lifecycle-interface": "error",
    "@angular-eslint/use-pipe-transform-interface": "error",
    "@typescript-eslint/consistent-type-definitions": "error",
    "@typescript-eslint/dot-notation": "off",
    "@typescript-eslint/explicit-member-accessibility": [
      "off",
      {
        accessibility: "explicit"
      }
    ],
    "@typescript-eslint/indent": ["off"],
    "@typescript-eslint/member-delimiter-style": [
      "error",
      {
        multiline: {
          delimiter: "semi",
          requireLast: true
        },
        singleline: {
          delimiter: "semi",
          requireLast: false
        }
      }
    ],
    "@typescript-eslint/member-ordering": "off",
    "@typescript-eslint/naming-convention": "off",
    "@typescript-eslint/no-empty-function": "off",
    "@typescript-eslint/no-empty-interface": "error",
    "@typescript-eslint/no-inferrable-types": [
      "error",
      {
        ignoreParameters: true
      }
    ],
    "@typescript-eslint/no-misused-new": "error",
    "@typescript-eslint/no-non-null-assertion": "error",
    "@typescript-eslint/prefer-function-type": "error",
    "@typescript-eslint/quotes": "off",
    "@typescript-eslint/semi": ["error", "always"],
    "@typescript-eslint/type-annotation-spacing": "error",
    "@typescript-eslint/unified-signatures": "error",
    "arrow-body-style": ["off"],
    "arrow-parens": ["off", "always"],
    "brace-style": ["error", "1tbs"],
    "comma-dangle": "off",
    "constructor-super": "error",
    curly: "error",
    "eol-last": "error",
    eqeqeq: ["error", "smart"],
    "guard-for-in": "error",
    "id-blacklist": "off",
    "id-match": "off",
    "import/no-deprecated": "warn",
    "jsdoc/no-types": "error",
    "linebreak-style": "off",
    "max-len": [
      "error",
      {
        code: 140
      }
    ],
    "new-parens": "off",
    "newline-per-chained-call": "off",
    "no-bitwise": "error",
    "no-caller": "error",
    "no-console": [
      "error",
      {
        allow: [
          "log",
          "dirxml",
          "warn",
          "error",
          "dir",
          "timeLog",
          "assert",
          "clear",
          "count",
          "countReset",
          "group",
          "groupCollapsed",
          "groupEnd",
          "table",
          "Console",
          "markTimeline",
          "profile",
          "profileEnd",
          "timeline",
          "timelineEnd",
          "timeStamp",
          "context"
        ]
      }
    ],
    "no-debugger": "error",
    "no-empty": "off",
    "no-eval": "error",
    "no-extra-semi": "off",
    "no-fallthrough": "error",
    "no-irregular-whitespace": "off",
    "no-multiple-empty-lines": "off",
    "no-new-wrappers": "error",
    "no-restricted-imports": ["error", "rxjs/Rx"],
    "no-shadow": [
      "off",
      {
        hoist: "all"
      }
    ],
    "@typescript-eslint/no-shadow": ["error"],
    "no-throw-literal": "error",
    "no-trailing-spaces": "error",
    "no-undef-init": "error",
    "no-underscore-dangle": "off",
    "no-unused-labels": "error",
    "no-var": "error",
    "prefer-const": "error",
    "quote-props": "off",
    radix: "error",
    "react/jsx-curly-spacing": "off",
    "react/jsx-equals-spacing": "off",
    "react/jsx-wrap-multilines": "off",
    "space-before-function-paren": "off",
    "space-before-blocks": "error",
    "space-in-parens": ["off", "never"],
    "spaced-comment": [
      "error",
      "always",
      {
        markers: ["/"]
      }
    ],
    "@typescript-eslint/tslint/config": [
      "error",
      {
        rules: {
          "import-spacing": true,
          whitespace: [true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type"],
        }
      }
    ]
  },
  overrides: [
    {
      files: ["cypress/**/*.js"],
      rules: {
        "space-before-blocks": "error",
        "no-var": "off",
        "no-bitwise": "off",
        "eqeqeq": "off",
        "prefer-const": "off"
      }
    }
  ]
};

I resolved all the lint issue in those folders, and then, when I ran lint, it showed an message saying "Tried to lint {file-name} but found no valid, enabled rules for this file type and file path in the resolved configuration".

I don't understand, the files are being linted, but the message says it's not. Here's a screen shot, I purposely caused a lint error. You'll see the above message saying "Tried to lint...but found no valid..." and then underneath it it shows that the file was actually linted (because it shows the lint error).

enter image description here

Why is this happening? I suppose it's not stopping me from linting my code, but it's annoying.

2 Answers 2

2

I was able to resolve this by adding an override section for js files that ignore the rule, like so:

overrides: [
    {
      files: ["**/*.js"],
      rules: {
        "@typescript-eslint/tslint/config": ["off"] //this is the rule that was causing the message, but you can add other rules here
      }
    }
  ]

I added this section outside of the main rules section.

1

I see you've added @typescript-eslint/tslint plugin in your eslintrc file.

So seems you have tslint.json file included in your project and you'll need to add a rule to tslint.json

Issue: https://github.com/palantir/tslint/issues/3735#issuecomment-368520472

"jsRules": {
   "no-empty": true
}
1
  • I don't have a tslint.json. I use that plugin for a rule in the .eslintrc.js file. This is the rule: ``` "@typescript-eslint/tslint/config": [ "error", { rules: { "import-spacing": true, whitespace: [true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type"], } } ] ``` I tried adding what you posted above, but it did not resolve the issue. I have updated my question to include my rules. Commented Jan 8, 2021 at 13:26

Not the answer you're looking for? Browse other questions tagged or ask your own question.