“unused eslint-disable directive”警告通常出现在以下情况: 当你在代码中添加了 eslint-disable 指令,但是ESLint在检查该代码段时并没有发现任何与该指令所禁用的规则相关的违规问题时,就会发出此警告。 这意味着你禁用的规则在当前代码段中实际上并没有被违反,因此该禁用指令是多余的。 3. 提供解决“unused es...
这就是 eslint 的 eslint-disable、eslint-enable、eslint-disable-next-line 等注释可以配置 rule 是否生效的原理。 eslint 是根据行列号找到对应的 comment 的,其实很多 AST 中会记录每个节点关联的 comment。 比如babel 的 AST: 这样可以根据 AST 来取出注释,之后通过正则来判断是否是 directive。 通过行列号...
verify(text){//parse源码constast=parse(text);//调用rule,拿到lint的问题constlintingProblems=runRules(ast);//通过AST拿到注释中的配置constcommentDirectives=getDirectiveComments(ast);//根据注释中的配置过滤问题returnapplyDisableDirectives(lintingProblems,commentDirectives);}可以看到,整体流程是:把...
verify(text){// parse 源码constast=parse(text);// 调用 rule,拿到 lint 的问题constlintingProblems=runRules(ast);// 通过 AST 拿到注释中的配置constcommentDirectives=getDirectiveComments(ast);// 根据注释中的配置过滤问题returnapplyDisableDirectives(lintingProblems,commentDirectives);} 可以看到,整体流程是...
When--fixis used, do not remove the disable directive for case 1. Continue to remove the disable directive for case 2. Do I have that correct? This is not quite my original idea, because I think that in some cases it would be useful to remove disable directives for rules disabled in ...
其实就是对 AST 中所有的 comments 的内容做一下正则的匹配,如果是支持的 directive,就把它收集起来,并且记录下对应的行列号。 之后就是对 problems 的过滤了。 function applyDisableDirectives(problems, disableDirectives) { const filteredProblems = []; ...
// 该规则的唯一目的是在<template>和块级别提供eslint-disable功能。它支持使用以下注释: /// eslint-disable 禁用 /// eslint-enable 开启 eslint-disable-line 禁用 eslint-disable-next-line 禁用 'vue/comment-directive': ['error', { // eslint-disable HTML注释,没有开启该禁用的规则则报错 ...
通过commentdirectives来过滤掉一些problems我们知道eslint还支持通过注释来配置,比如/*eslint-disable*//*eslint-enable*/这种。那它是怎么实现的呢?注释的配置是通过扫描AST来收集所有的配置的,这种配置叫做commentDirective,也就是哪行那列Eslint是否生效。然后在verify结束的时候,对收集到的linting...
The version of ESLint you are using. v7.31.0 The problem you want to solve. I have two eslint configs, one for stylistic auto-fix's and one for linting. I am running into a problem when I have a disable directive (eg. // eslint react/no-...
{/** 递归调用加载扩展配置 */yield*this._loadExtends(extendName,ctx);}yield{// Debug information.type:ctx.type,name:ctx.name,filePath:ctx.filePath,// Config data.criteria:null,env,globals,ignorePattern,noInlineConfig,parser,parserOptions,plugins,processor,reportUnusedDisableDirectives,root,rules,...