Babel 插件学习

2024-06-04

最近写了一个非常简单、但好玩的 babel 插件:删除同事的console.log。原理很简单。先用 babel 找到console.log,然后通过git blame判断是不是自己的console.log,不是则删掉。

完整代码在这里,代码就 50 多行,顺便记录一下 babel 插件开发的注意点。

babel 插件大概长这样:

function plugin() {
  return {
    pre() {},
    visitor() {},
    post() {},
  };
}

插件在初始化时会执行一次,此时可以处理一些选项合并。babel 每处理一个文件时,都会执行 pre、post 和 visitor。