在这期间也是误导一些东西,看得多了,就会发现,其实套路都一样,摸索出它们的核心框架,再对功能缝缝补补,不断更新迭代,或许我们也可以成为开源大作的作者。
如果用几句话来描述rollup的话:
读取并合并配置 -> 创建依赖图 -> 读取入口模块内容 -> 借用开源estree规范解析器进行源码分析,获取依赖,递归此操作 -> 生成模块,挂载模块对应文件相关信息 -> 分析ast,构建各node实例 -> 生成chunks -> 调用各node重写的render -> 利用magic-string进行字符串拼接和wrap操作 -> 写入
精简一下就是:
字符串 -> AST -> 字符串
如果改系列能对你一丝丝帮忙,还请动动手指,鼓励一下~