前言
一个最基本的插件结构
1 | // 新建一个 @babel/xx-xx 的包,根目录新建 index.js,发包的时候 npm publish |
例子
最简单的例子
把 foo === bar;
换成 sebmck === dork;
1 | // foo === bar; 的 AST 如下 |
极简版babel-plugin-import
实现模块的按需导入
1 | import {A, B, C as D} from 'foo' |
通过上面展示的结果,我们需要处理 ImportDeclaration
节点类型,将它的specifiers
拿出来遍历处理一下。另外如果用户使用了默认导入
语句,我们将抛出错误,提醒用户不能使用默认导入.
1 | // 用户配置 |
参考文章
更多的插件操作,如获取子节点path等,可继续阅读:Babel 插件手册