简体   繁体   English

ESLint - 显示尝试 Lint 但 Lints 文件的问题

[英]ESLint - Shows Issue Trying to Lint but Lints File

I'm using ESLint in an Angular project.我在 Angular 项目中使用 ESLint。

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:我在 cypress 文件夹(我的 e2e 测试)中设置了 js 文件,以通过在 .eslintrc.js 文件中进行覆盖来设置不同的规则,如下所示:

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".我解决了这些文件夹中的所有 lint 问题,然后,当我运行 lint 时,它显示一条消息,提示“尝试 lint {file-name} 但在已解决的配置中找不到此文件类型和文件路径的有效启用规则”。

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.这是一个屏幕截图,我故意造成了一个 lint 错误。 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).您会看到上面的消息说“尝试 lint...但发现没有有效...”,然后在它下面显示文件实际上已 lint(因为它显示 lint 错误)。

在此处输入图像描述

Why is this happening?为什么会这样? I suppose it's not stopping me from linting my code, but it's annoying.我想这并没有阻止我对代码进行 linting,但这很烦人。

I see you've added @typescript-eslint/tslint plugin in your eslintrc file.我看到您在 eslintrc 文件中添加了@typescript-eslint/tslint插件。

So seems you have tslint.json file included in your project and you'll need to add a rule to tslint.json因此,您的项目中似乎包含tslint.json文件,您需要向 tslint.json 添加规则

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

"jsRules": {
   "no-empty": true
}

I was able to resolve this by adding an override section for js files that ignore the rule, like so:我可以通过为忽略规则的 js 文件添加覆盖部分来解决此问题,如下所示:

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.我将此部分添加到主要规则部分之外。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM