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

Sim*_*ian 6 enums typescript eslint eslintrc

当我尝试在我正在处理的一个存储库上运行 ESLint 时,出现错误。我将问题归结为,出于某种原因,ESLint 会在一些特定文件上引发错误,因为它们包含枚举。我相信存储库中的其他文件也包含枚举,但由于某种原因,只有这些文件会导致 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)
Run Code Online (Sandbox Code Playgroud)

当运行时--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
Run Code Online (Sandbox Code Playgroud)

谢谢!

Uma*_*ran 12

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

// .eslintrc
"rules": {
    ...
    "no-unused-vars": "off",
    "@typescript-eslint/no-unused-vars": [
        "error",
        { "argsIgnorePattern": "^_" }
    ]
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 这为我解决了问题 - 谢谢!PS 您可以将“错误”替换为“警告”。 (2认同)

Tam*_*yce 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"
  ],
Run Code Online (Sandbox Code Playgroud)

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

例如,删除 eslint:recommended 为我解决了这个问题。