实现一个清除console的babel插件
本篇只讲babel插件的实现, js AST部分后面有时间再写
首先当然是新建一个文件夹啦, 名字我们叫 bar 好了
开始做准备工作:
安装babel, 略…
然后在根文件内新建一个.babelrc文件, 如果我们的插件名叫console-clear的话, .babelrc文件内容为:
1 | { |
由于我们把插件放在本地, 没有发布到npm上, 所以是带相对路径的ignore参数代表会被忽略的console, 比如以上会忽略console.time, console.timeEnd
新建一个待编译的js文件, 比如index.js, 内容如下:
1 | console.log('foo') |
我们的插件叫console-clear, 所以就创建一个console-clear.js文件(创建一个文件夹里面再创建index.js也行), 内容如下:
1 | module.exports = function ({ types: t }) { |
命令行执行 babel index.js 发现输出就只有以下两条了:
1 | console.time('bar') |
至此, 一个清除console的babel插件就写好啦
如果你看的一脸懵b, 比如ExpressionStatement函数是干嘛的等等, 看下文档吧