阅读 673

谈谈我的关于前端编译的梦想

大家可能知道,我写了一本《Babel 插件通关秘籍》 的小册,但是不知道这本小册的背景、前因后果。今天就来聊一下这个:

大概是年初的时候,我明确了自己的梦想,确定了自己想做什么,大概分为几个阶段,太远的就先不说了。最近 3 年的梦想是写一本前端编译方面的书。

因为在前端领域其实编译技术还是有很多应用的,比如用于 js、ts 代码转换的 babel、typescript compiler、swc,用于 css 代码转换的 postcss,用于检查代码的 eslint、stylelint,用于美化代码的 prettier,压缩代码的 terser,还有 vue 的 template compiler、graphql 的 dsl 的 parser 等等,这些都是编译技术的应用,但是并没有一本书去深入的系统的讲编译技术和这些工具的实现原理。我对编译技术比较感兴趣,而且工作也是在做相关内容,所以想着写一本这方面的书。

其实我和出版社编辑聊过,审核也通过了,甚至也写了一章了,但是过程中我感觉自己还没准备好,对这些工具还没有有透彻的掌握,所以我和编辑说先暂停,把一部分内容通过在线的小册的形式试试水,看看大家对这方面内容的认可程度,也打磨下内容,之后再写书就更顺理成章了。编辑同意了。然后就有了《Babel 插件通关秘籍》的小册。

在这本小册里面,我讲了 Babel 的 AST、编译流程这些原理性的东西,也讲了 api 和插件还有各种场景的应用这些具体的实践,更是实现了一个简易的 Babel,算是对 Babel 有一个相对比较透彻的掌握了。

而且其中也不只是 Babel,也涉及到了 JS 解释器、Linter、Type Checker 这些编译技术,只不过也是基于 Babel parser 实现的。这些严格来说不属于 Babel 插件的范畴,但它属于编译技术的范畴,我是希望通过这本小册能够尽可能多的讲清楚编译技术的各种应用(Linter、Type Checker、解释器等)的原理,而不仅仅是 Babel。

写完 Babel 小册是否可以开始写书了呢?还不够,因为对于其他的技术我其实也没有透彻的掌握。那写啥书,还没到那水平啊。所以我还是准备继续写这方面的内容。

接下来还会写:

《Eslint + Prettier 通关秘籍》 同样会讲原理、讲插件、会有大量实战案例,最后也会手写一个简易的 Eslint 和 Prettier。不是说非要卷源码,而是我觉得只有能实现一个简易的版本,才能算真正理解了他们。

《Typescript 源码通关秘籍》市面上讲 typescript 使用的文章太多了,但没有一个系统讲源码实现的,大家知道 ts 能做类型检查,可能不知道怎么实现的类型检查,这本小册里面会系统讲清楚类型检查的实现原理。

《Postcss 插件通关秘籍》Postcss 是和 Babel 一样的转译器,只是是针对 css 的,市面上关于 postcss 的资料其实很少,但它也是我们工作中离不开的一个工具。这本小册里会也从原理到插件到各种实战案例,最后加一个手写 postcss,来把 postcss 真正讲透。

后面还有 v8、swc、terser 等等内容,最后会写一个《前端编译通关秘籍》的小册来把所有内容做一个综合,并且会在这本小册里写完我现在写了一部分的 “手写简易浏览器” 的实战案例。

这些内容写完可能要很久,我给自己的时间是两年半,然后留半年时间来写书。我相信把这些内容都摊开了,讲透了,那么之后再综合讲前端编译的原理,讲各种场景的应用就会水到渠成。

其实关注我公众号的可能会发现我的文章全部是原创,不是说我非要独树一帜什么的,而是因为我做这个公众号的初衷就是传达一些我的技术观点,分享一些最近研究的技术点,而且也为写编译方面的书做准备。我一直认为只有能把那部分内容清晰的通俗的讲出来,才算真正理解了,所以写公众号对我来说也是一个成长的过程。如果只是转载一下文章,做一下活动运营下,那就不是我做公众号的目的了。当然,我偶尔也会发一些广告,但是会是技术相关的。

我公众号粉丝现在有 5000 左右,感谢大家对我的支持,我已经很满足了,因为我发的内容可能很多都是比较冷门的,比如 Eslint 插件的写法、fix 的实现原理等,这些其实大多数人都不咋需要关心。当然我也会写一些别的内容,比如 Node.js、VsCode 插件,前端框架、技术管理、跨端等等,不会全部写编译相关内容的。

其实完成这个目标是一个漫长的过程,想要做出一些东西来确实是需要时间的。如果一门技术你可以速成,那别人也可以,那它的价值就并不大了。这也是我想和大家分享的一个观点,坚持长期主义,把一个东西学透彻,让它成为你的核心竞争力,而不是浅尝辄止,会用就行了。

这几年我会把这些小册一本本写完,最后整理成《前端编译通关秘籍》的书,大家可以见证这个过程。

这个过程会很难,很漫长,但是也会是快乐的,因为这是实现梦想的过程,而且可以和大家分享这些。

既然选择了远方,便只顾风雨兼程。

最后,再次感谢大家的支持和陪伴,希望能和大家一起成长。

祝大家中秋快乐。

文章分类
前端
文章标签