V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
retrocode
V2EX  ›  问与答

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

  •  
  •   retrocode · 2022-09-01 12:08:52 +08:00 · 692 次点击
    这是一个创建于 812 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为需要通过 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 {
      
    }
    
    2 条回复    2022-09-01 15:56:58 +08:00
    coolzjy
        1
    coolzjy  
       2022-09-01 12:54:50 +08:00   ❤️ 1
    retrocode
        2
    retrocode  
    OP
       2022-09-01 15:56:58 +08:00
    @coolzjy #1 感谢感谢, 这个可行 非常完美
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1544 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:08 · PVG 01:08 · LAX 09:08 · JFK 12:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.