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

标签 javascript angular eslint lint eslintrc

我在 Angular 项目中使用 ESLint。

我通过在 .eslintrc.js 文件中进行 anding 覆盖,将 cypress 文件夹中的 js 文件(我的 e2e 测试)设置为具有不同的规则,如下所示:

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"
      }
    }
  ]
};

我解决了这些文件夹中的所有 lint 问题,然后,当我运行 lint 时,它显示一条消息:“尝试对 {file-name} 进行 lint,但在以下位置找不到此文件类型和文件路径的有效启用规则:已解析的配置”。

我不明白,文件正在被检查,但消息说事实并非如此。 这是一个屏幕截图,我故意造成了 lint 错误。您将看到上面的消息“尝试 lint...但发现无效...”,然后在其下方显示该文件实际上已被 lint(因为它显示了 lint 错误)。

enter image description here

为什么会发生这种情况?我想这并不能阻止我对代码进行 linting,但这很烦人。

最佳答案

我能够通过为忽略规则的 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
      }
    }
  ]

我将此部分添加到主要规则部分之外。

关于javascript - ESLint - 显示尝试 Lint 但 Lint 文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65619499/

相关文章:

javascript - 如何使用 Parse 和 Mandrill 发送电子邮件通知?

javascript - 如何从 HTML 输入中获取多个值?

typescript - Eslint 不使用 TypeScript 语法

javascript - "to"不是 expect jest/valid-expect 的有效属性

node.js - 如何在 Angular 5中导入 Electron

node.js - Vue 仓库 "Module build failed: Error: No ESLint configuration found"

javascript - 检测用户何时到达 html 页面中只读文本区域的末尾

javascript - 将 javascript 时间转换为 asp.net DateTime.Now

angular - 类型 'BehaviorSubject<false>' 不可分配给类型 'BehaviorSubject<boolean>'

angular - "port 4200 already in use"错误,尽管它没有被使用