2019-5-23 昨天学习新知识打卡-AST 抽象语法树

本文介绍了代码转AST的网站,可处理JS、CSS、VUE等代码。还阐述了webpack打包大体机制,包括加载配置文件、读取入口文件分析依赖等,通过开源ast工具解析源码为AST树,修改后再编译成源码。了解AST后可用其做很多事,如写webpack插件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码转AST网站地址:可以转JS,CSS,VUE,...

https://astexplorer.net/

理解

昨天看的webpack打包原理,之前一直没考虑过,一直以为是正则匹配,或者自己写的一套反编译,修改,再编译机制;能想象的就是元素之间是通过树形结构嵌套的;

 

看了视频后发现确实是这样的;

webpack打包大体机制

1.加载配置文件;

2.读取入口文件,分析入口文件,分析出所有依赖的库文件; 

3.过程为   源码使用开源ast工具分析库解析为AST树--->修改AST树的属性或者值(如去掉注释,变量替换等)--->用js工具把AST树再编译成源码,并放入依赖文件库value中,key值为分析的源码相对路径,如./src/main.js;

4.按照webpack模板样式{"./src/mian.js"," eval(" webpack_require('  ast新转义后的代码 ')"},生成依赖的文件json;

5.生成打包后的入口文件

 

 

AST并不是什么很难,但是要知道如何用js库提取并修改,了解后可以用AST做很多事情; 如写webpack插件,定制自己的插件...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值