公众账号

二维码 微信扫描关注

当前位置:首页 > 技术文章 > 前端开发 >

通过开发 Babel 插件理解抽象语法树(AST)

每天数以千计的 JavaScript 开发者使用的语言版本现在浏览器都还没有完全实现,许多他们使用的语言特性仅仅还只是建议,并没有保证说一定会纳入规范。因为有 Babel 项目使现在就能使用这些特性变成了可能。

Babel 是我们知道的将 ES6 代码转译为 ES5 代码且能安全稳定运行最好的工具,同时它允许开发者开发插件,能够在编译时期转换 JavaScript 的结构。

现在,我们来看看如何开发一个给 JavaScript 添加默认不可变数据的 Babel 插件,代码可以从 GitHub repo 下载。

语言概述

我们想设计一个通过 Mori 将普通对象和数组字面量转换为持久数据结构的插件。

我们希望写出来的代码类似这样:


  • var foo = { a: 1 };
  • var baz = foo.a = 2;
  • foo.a === 1;
  • baz.a === 2;
mipsasm

然后将代码转换为:


  • var foo = mori.hashMap("a", 1);
  • var baz = mori.assoc(foo, "a", 2);
  • mori.get(foo, "a") === 1;
  • mori.get(baz, "a") === 2;
kotlin

我们借助 MoriScript 来开始吧。

Babel 概述

如果我们想更深入的了解 Babel,我们需要知道 3 个处理流程中很重要的工具。

Babel Process

解析

关于 商务 项目 联系 友情链接网站地图 Copyright ©-2018 UiBQ版权所有(http://www.uibq.com)