如果未提供位置,则在报告错误时必须提供节点。运行 ESLint 7.11.0 时出现 no-unused-vars 错误

Posted

技术标签:

【中文标题】如果未提供位置,则在报告错误时必须提供节点。运行 ESLint 7.11.0 时出现 no-unused-vars 错误【英文标题】:Node must be provided when reporting error if location is not provided. Error with no-unused-vars when running ESLint 7.11.0 【发布时间】: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

谢谢!

【问题讨论】:

【参考方案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": "^_" 
    ]
    ...

【讨论】:

以上是关于如果未提供位置,则在报告错误时必须提供节点。运行 ESLint 7.11.0 时出现 no-unused-vars 错误的主要内容,如果未能解决你的问题,请参考以下文章

Qt/C++ 错误处理

错误报告

使用 CreateML 创建文本分类器模型时收到“引发错误但未捕获:提供的验证数据必须包含...”

Angular 4 - Http 请求错误:您在预期流的位置提供了“未定义”

OBIEE 调度报告

shap.Explainer 构造函数错误,要求提供未记录的位置参数