某一线大厂某架构组前端工程师,公众号[神光的编程秘籍],维护公司的 builder 和 ide,对编译原理、前端工程化有一定的研究。
实战案例源码
babel 已经是前端领域的必备工具了,它可以让我们使用一些新的语法和 api,babel 会在编译的过程中转为目标环境的支持的语法并引入 polyfill。除此以外,babel 也提供了强大的插件机制,我们可以通过它暴露出的 api 来开发各种代码转换插件。
babel 是一种源码到源码的转换编译器,学习 babel 的原理的过程也会学到编译原理的一些知识。
除了作为转译工具外,babel 也经常用来做静态分析,分析代码,提取信息,然后用于生成文档、lint、type check 等,我们会用大量的实战案例,让你真正能够把 babel 的静态分析能力用起来。
实战部分包括:
自动国际化:自动完成代码的国际化,帮大家扩展下思路,你会发现 babel 原来还可以用来做一些对业务有意义的自动化的事情。
自动生成文档:自动生成 api 文档,不再需要手动去维护。
自动埋点:自动进行函数插桩,埋点是一种常见的函数插桩。
linter: 探索 eslint、stylelint 等 lint 工具的实现原理,能够手写各种检查插件。
type checker:实现简单的 ts 类型检查,会对 typescript 的类型检查的原理会有更深的理解。
压缩混淆:前端必用工具之一,探索它的实现原理,压缩怎么做,混淆怎么做,怎么用 babel 实现,开阔下思路。
js 解释器: AST 除了转译、静态分析外,还可以直接解释执行,学完这个案例可以知道解释器是怎么解释代码的。
模块遍历器:基于 babel 做模块的遍历,理解打包工具的依赖图构建原理。
手写 babel: 手写 babel 是为了加深对 babel 的理解,真正掌握 babel。
小册分为 babel 插件基础、babel 插件进阶、babel 插件实战、手写简易的 babel 四部分内容:
回复1016,获取课程链接!