如果未提供位置,则在报告错误时必须提供节点。运行 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 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 CreateML 创建文本分类器模型时收到“引发错误但未捕获:提供的验证数据必须包含...”