简单介绍下各种 JavaScript 解析器

本文介绍了JavaScript解析器的重要性,特别是对于前端工程化的作用。文章列举了多个知名的JS解析器,如uglify-js、Esprima、acorn、@babel/parser、espree和TypeScript,并详细讲述了它们的起源、特点和用途。此外,还提及了一些其他有趣的解析器,如sucrase、swc和esbuild,强调了它们的速度优势。最后,提到了几个著名的工具库,如recast、jscodeshift和ASTExplorer,这些工具在代码重构和AST操作中发挥着重要作用。
摘要由CSDN通过智能技术生成

作者:沧海

各种js解析器是前端工程化的基石,可以说如果没有它,很多工程化都无法正常执行,我们每天用到的babel、webpack、eslint、TypeScript背后都需要一套对应的js解析器,今天我们来看看,目前市场上有哪些常用的解析器,他们各自又拥有什么特性尼?

前言

在说js解析器前,我们需要先了解下ESTree这个项目,这个项目的初衷通过社区的力量,保证和es规范的一致性,通过自定义的语法结构来表述JavaScript的AST,后来随着知名度越来越高,多位知名工程师的参与,使得变成了事实意义上的规范,目前这个库是Mozilla和社区一起维护的。

如果没有AST规范,那么也就意味着根本无法造出对应的解析器,而如果AST规范不统一,一些相应的工具库就不能很好的互通有无,比如webpack就无法正常的使用babel相关插件。

正是因为EsTree的定义的规范,所以现在所有的js解析器或者编译器,基本上都绕不开它,如果你有志于自己写一个js解析器,那它的文档你一定需要读一遍。

一。知名的JS解析器

1.1 uglify-js (11.2k☆)

创作时间:2010-8-1 作品地址:https://github.com/mishoo/UglifyJS 作者介绍:Mihai Bazon,Lisp程序员,Emacs爱好者,貌似是罗马尼亚人 作者博客:

** 用于混淆和压缩代码,因为一些原因,uglify-js自己内部实现了一套AST规范[1],也正是因为它的AST是自创的,不是标准的ESTree,es6以后新语法的AST,都不支持,所以没有办法压缩最新的es6的代码,如果需要压缩,可以用类似babel这样的工具先转换成ES5。

uglify-js已经进行到3版本了,前两个版本都是Mihai Bazon维护,但现在最新的3版本是alexlamsluglify-js已经进行到3版本了,前两个版本都是

uglify-js可以通过--acorn或者--spidermonkey指定对应的parsing

1.2 Esprima (6k☆)

创作时间:2011-11-20 作品地址:https://github.com/jquery/esprima 作者介绍:ariya印尼人,在德国获得博士学位,目前住在硅谷山景城,创建了世界上第一个真正的无头Web浏览器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值