学习AST的代码笔记整理
yarn start
# or
yarn demo1- esprima: code -> ast
- estraverse: ast -> new ast (traverse and modify)
- escodegen: new ast -> code
yarn demo2Ref: Babel Documentation
- A preset item is a set of plugins.
- The
@babel/preset-envincludes@babel/plugin-transform-arrow-functions.
// .babelrc
{
"presets": ["@babel/preset-env"],
"plugins": []
}# arrow function
yarn demo3-1
# import partly
yarn demo3-2Ref:@babel/types Documentation
// input
const fn = (a, b) => { return a + b; };
const fn = (a, b) => a + b;
// output
const fn = function (a, b) { return a + b; };// input
import { Button, Icon } from 'vant';
// output
import Button from "vant/lib/Button";
import Icon from "vant/lib/Icon";yarn demo4Babylon is a JavaScript parser used in Babel.
- Use
babylonto parse code rather than@babel/core. - Use
@babel/traverseand@babel/generatorin@babel/core.