作者介绍

某一线大厂某架构组前端工程师,公众号[神光的编程秘籍],维护公司的 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 四部分内容:

你会学到什么?

  • babel 的编译流程、AST、api
  • babel 插件和 preset 的方方面面
  • js parser 的历史
  • babel macros
  • babel 内置功能的实现思路
  • 实现一个 lint 工具
  • 实现一个 ts type checker
  • 自动埋点
  • 自动国际化
  • 自动生成文档
  • 压缩混淆的原理
  • 打包工具的模块依赖图是怎么生成的
  • 手写一个简易的 babel

适宜人群

  • 熟悉 js 语法,用过 babel
  • 想深入了解 babel 原理的前端开发者
  • 想入门编译原理的工程师

Babel 插件通关秘籍相关推荐

  1. 想进美团不知道选哪个技术岗位?这里有一份通关秘籍!

    春暖花开,美团春招已经启动,针对校招和社招开放了几千个职位,其中很大部分都是技术岗位. 随着互联网的高速发展,技术岗位在不断地细分,比如软件开发不仅分为前端和后端,前端会分为Web.iOS和Andro ...

  2. DVWA 1.9 通关秘籍

    DVWA 1.9 通关秘籍 本文来源:i春秋社区-分享你的技术,为安全加点温度  DVWA (Dam Vulnerable Web Application) DVWA是用PHP+Mysql编写的一套用 ...

  3. ES6 import代码智能转换Babel插件: babel-plugin-imports-transform

    babel-plugin-imports-transform ES6 import代码智能转换Babel插件,优化(webpack等)打包构建体积. Github地址: https://github. ...

  4. [转] 以 async/await 为例,说明 babel 插件怎么搭

    你一定碰到过这些库 babel-polyfill 项目地址:https://github.com/babel/babel/blob/master/packages/babel-polyfill 通过两 ...

  5. 鹅厂算法大神干货实录,初赛通关“秘籍”还不赶快来GET!

    2019腾讯广告算法大赛正火热进行中,今年大赛赛题"广告曝光预估"推陈出新,聚焦实际业务需求和技术创新实践应用,吸引了各界算法极客积极报名参与.为帮助选手在比赛中有更出色的发挥,5 ...

  6. 漫画影视化背后,IP成漫改的通关秘籍?

    近年来网文IP影视化改编已经司空见惯了,但随着精品IP日渐匮乏,网改剧似乎也已经没有了太大的想象空间.而相比于已被大肆开垦的网文领域,漫画领域俨然还是一块有待挖掘的宝地.于是,比网文更能直观表现故事内 ...

  7. XSS-labs靶场通关秘籍(level 17-20)

    XSS-labs靶场通关秘籍level 17-20 level 17 进入靶场,看到GET请求方式传递参数,直接上测试代码 <script " ' Oonn> 查看页面源码,发现 ...

  8. 电大计算机网考攻略,上海开放大学毕业通关秘籍

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天与大学分享一下上海开大的学习经验吧! 一.其实我想大家选择成人教育应该都是有相应的目的. 1.现在工作中的技能还可以,但学历还比较低,提升一下学历以后 ...

  9. while True learn()全金牌通关秘籍

    以下为最初几关的金牌通关秘籍,不继续更的原因是:这个游戏本质上就是套着机器学习外壳的水管游戏,涉及知识点的内容仅有几篇推荐给你的文章,游戏核心不涉及机器学习. 所以想单纯学习机器学习的没必要玩这个游戏 ...

最新文章

  1. AI市场扩大催生多样化标注需求
  2. 连接时会提示oracle initialization or shutdown in progress
  3. PHP语法分析器:RE2C BISON 总结
  4. C++学习之路 | PTA乙级—— 1062 最简分数 (20 分)(精简)
  5. 记录第二次遇到ERROR! MySQL server PID file could not be found!
  6. 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
  7. SAP PS 第19节 里程碑开票
  8. iOS12捷径最全整理(100多个捷径),包括抖音视频下载捷径,地图导航捷径等
  9. 传说中开场晕过去一千多人的迈克杰克逊演唱会,有生之年请看下这个视频
  10. strcmp, strcasecmp, memcmp
  11. 【Godot】一个节点发射器(泼水机)
  12. 修改Win7硬盘分区盘符出现“虚拟磁盘管理器-参数错误”
  13. 大数据不是你想有就能有,如何才能“狂拽炫酷吊炸天”
  14. 【网页制作】CSS基本选择器讲解(附讲解视频)
  15. dotnet OpenXML 文本 Kerning 字间距的作用
  16. 计算机学校迎新条幅,学校迎新条幅内容
  17. android 模拟器输入中文
  18. 分门别类刷leetcode——高级数据结构(字典树,前缀树,trie树,并查集,线段树)
  19. VSCode的配置和插件同步到多台电脑
  20. 【JS逆向】知乎请求头 _x-zes-96 webpack还原

热门文章

  1. CSS字体描边,黄金金属质感
  2. Bootstrap中CSS通用样式——排版,列表,代码,图片
  3. 除夕有6.88亿人使用微信红包;超2.5亿人集齐五福过福年;巴菲特成苹果第四大股东丨价值早报
  4. java简单表白的情话_感动的表白情话 简单表白的话
  5. iOS微信7.0.12发布!除了适配暗黑模式,还有这些新功能!
  6. html 调试502谷歌浏览器,谷歌浏览器网页提示Server Error 502 Bad Gateway
  7. 解决混合APP中网页缓存引起刷新不及时问题
  8. 中国数据中心行业价值分析及投资决策建议报告2021~2027年
  9. 高防服务器为什么那么贵
  10. c51单片机矩阵键盘1602计算器_单片机中用矩阵键盘实现计算器