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

问题描述

尝试在我正在处理的一个存储库上运行 ESLint 时出现错误。我将问题归结为,出于某种原因,ESLint 会在一些特定文件上引发错误,因为它们包含枚举。我相信 repo 中的其他文件也包含枚举,但由于某种原因,只有这些文件会使 linter 崩溃。当我将枚举注释掉时,lint 运行得非常好。我已经对这个问题进行了一些研究,但我不确定解决方案是什么。该.eslintrc文件有no-unused-varsand @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

谢谢!

标签: typescriptenumseslinteslintrc

解决方案


.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 为我修复了它。


推荐阅读