【问题标题】:Node must be provided when reporting error if location is not provided. Error with no-unused-vars when running ESLint 7.11.0如果未提供位置,则在报告错误时必须提供节点。运行 ESLint 7.11.0 时出现 no-unused-vars 错误
【发布时间】:2021-10-08 02:00:15
【问题描述】:

尝试在我正在处理的一个存储库上运行 ESLint 时出现错误。我将问题归结为,出于某种原因,ESLint 会在一些特定文件上引发错误,因为它们包含枚举。我相信 repo 中的其他文件也包含枚举,但由于某种原因,只有这些文件会使 linter 崩溃。当我将枚举注释掉时,lint 运行得非常好。我已经对这个问题进行了一些研究,但我不确定解决方案是什么。 .eslintrc 文件有 no-unused-vars@typescript-eslint/no-unused-vars,我读过这是一个问题,但我已经搞砸了分别启用和禁用它们,但无济于事。将它们中的任何一个设置为活动都会产生相同的错误,并且 linter 运行的唯一方法是禁用两者。

这是运行 lint 时抛出的错误:

AssertionError [ERR_ASSERTION]: Node must be provided when reporting error if location is not provided
    at assertValidNodeInfo (/home/simon/code/janus-api/node_modules/eslint/lib/linter/report-translator.js:98:9)
    at /home/simon/code/janus-api/node_modules/eslint/lib/linter/report-translator.js:311:9
    at Object.report (/home/simon/code/janus-api/node_modules/eslint/lib/linter/linter.js:920:41)
    at Program:exit (/home/simon/code/janus-api/node_modules/eslint/lib/rules/no-unused-vars.js:622:33)
    at /home/simon/code/janus-api/node_modules/eslint/lib/linter/safe-emitter.js:45:58
    at Array.forEach (<anonymous>)
    at Object.emit (/home/simon/code/janus-api/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
    at NodeEventGenerator.applySelector (/home/simon/code/janus-api/node_modules/eslint/lib/linter/node-event-generator.js:254:26)
    at NodeEventGenerator.applySelectors (/home/simon/code/janus-api/node_modules/eslint/lib/linter/node-event-generator.js:283:22)
    at NodeEventGenerator.leaveNode (/home/simon/code/janus-api/node_modules/eslint/lib/linter/node-event-generator.js:306:14)

当使用--debug 运行时,我收到此错误:

eslint:linter Line: 1 +0ms
  eslint:linter Parser Options: {
  ecmaFeatures: { globalReturn: false },
  ecmaVersion: 11,
  sourceType: 'module',
  project: './tsconfig.json'
} +0ms
  eslint:linter Parser Path: /home/simon/code/janus-api/node_modules/@typescript-eslint/parser/dist/index.js +0ms
  eslint:linter Settings: {} +0ms

谢谢!

【问题讨论】:

    标签: typescript enums eslint eslintrc


    【解决方案1】:

    .eslintrc.json

      "extends": [
       -> "eslint:recommended", <-
        "plugin:@angular-eslint/recommended",
        "plugin:@angular-eslint/ng-cli-compat",
        "plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
        "plugin:@angular-eslint/template/process-inline-templates",
        "plugin:prettier/recommended"
      ],
    

    我的猜测是您正在导入一些包含 no-unused-vars 和 @typescript-eslint/no-unused-vars 的内容。但是没有你的 eslintrc,它可能是别的东西。如果您有机会,请将此添加到您的问题中。

    例如,删除 eslint:recommended 为我修复了它。

    【讨论】:

      【解决方案2】:

      执行以下操作为我解决了这个问题。

      // .eslintrc
      "rules": {
          ...
          "no-unused-vars": "off",
          "@typescript-eslint/no-unused-vars": [
              "error",
              { "argsIgnorePattern": "^_" }
          ]
          ...
      }
      

      【讨论】:

        猜你喜欢
        • 2019-07-06
        • 2018-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-10
        • 2019-01-12
        • 2020-03-17
        相关资源
        最近更新 更多