eslint 为什么不支持自动修复删除空的代码块? 同时为何解析出的 ast 树中找不到 else 关键字的节点?

2022-09-01 12:08:52 +08:00
 retrocode

因为需要通过 fix 对现有代码进行调整修复, 迫于形势我开始写自定义 eslint 规则了 orz

现在遇到一个问题, 自动修复后会产生空 else 代码块, 同时解析出来的 ast 树中又没有 else 关键字的节点

我注意到 eslint 目前所有的检测空代码块的规则都不支持 fix, 只能手动删除, 是自动删除存在什么缺陷吗?

有没有暴力的方法可以移除 else 关键字? 只要管用就好,后续我 review 一遍, 也比手动几百个文件一个一个删除要来的好些

// fix 直接移除 node.alternate 会遗留 一个 else 关键字
if (this.$checkResoponse(res)) {
  return data
} else 
// 而若只移除错误代码有会残留一个空的 else{}
if (this.$checkResoponse(res)) {
  return data
} else {
  
}
687 次点击
所在节点    问与答
2 条回复
coolzjy
2022-09-01 12:54:50 +08:00
retrocode
2022-09-01 15:56:58 +08:00
@coolzjy #1 感谢感谢, 这个可行 非常完美

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/876965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX