首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
babel
订阅
烟花不冷
更多收藏集
微信扫码分享
微信
新浪微博
QQ
7篇文章 · 0订阅
【编译篇】AST实现函数错误的自动上报
之前有身边有人问我在错误监控中,如何能实现自动为函数自动添加错误捕获。今天我们来聊一聊技术如何实现。先讲原理:在代码编译时,利用 babel 的 loader,劫持所有函数表达。然后利用 AST(抽象语法树) 修改函数节点,在函数外层包裹 try/catch。然后在 catch…
了解虚拟DOM
Vue在2.0版本引入了虚拟DOM。其了虚拟DOM算法是基于snabbdom算法所做的修改。参看https://github.com/vuejs/vue/blob/dev/src/core/vdom/patch.js注释部分。要想了解Vue,必须了解虚拟DOM,本篇文章主要介绍…
[译] 成为一个编译器之「使用 JavaScript 来制作编译器」
- 「制作一个编译器」听起来很计算机科学…… 但是我从没在代码面试中遍历过节点,我真能造出一个编译器? - 让我们先尝试着成为一个编译器。 - 难道一个编译器不应该使用递归或者遍历之类的吗? - 是的,那些是制作一个编译器需要的所有棒棒哒技术,然而这并不意味着你需要先使用那些做法。 - 从制作一个编译器中能学到的软件开发小窍门。
入门babel--实现一个es6的class转换器
babel是一个转码器,目前开发react、vue项目都要使用到它。它可以把es6+的语法转换为es5,也可以转换JSX等语法等,实际上他能通过自定义插件的方式完成任意转换。 我们在项目中都是通过配置插件和预设(多个插件的集合)来转换特定代码,例如env、stage-0等。那么…
深入浅出 Babel 下篇:既生 Plugin 何生 Macros
这篇文章干货不少于上篇文章,这篇我们深入讨论一下宏这个玩意 —— 我想我们对宏并不陌生,因为很多程序员第一门语言就是 C/C++; 一些 Lisp 方言也支持宏(如 Clojure、Scheme), 听说它们的宏写起来很优雅;一些现代的编程语言对宏也有一定的支持,如 Rust、…
深入浅出 Babel 上篇:架构和原理 + 实战
✨满满的干货,不容错过哦. 写文不易,点赞是最大的鼓励。 文章下篇已经更新:深入浅出 Babel 下篇:既生 Plugin 何生 Macros 有点冷清,赞起来。 上图是 Babel 的处理流程, 如果读者学习过编译器原理,这个过程就相当亲切了. 1️⃣词法解析(Lexical…
前端与编译原理——用 JS 写一个 JS 解释器
说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念。作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于“抽象语法树(AST)”。但这仅仅是个开头而已。编译原理的使用,甚至能让我们利用JS直接写一个能运行JS代码的解释器。 接触过小程序开发的同学应该知…