babel-parser和acorn的区别

知道acorn是js的解析器,也知道babel-parser也是js的解析器,但是他们两个有什么区别吗?

首先,@babel/parser(之前就是babylon)是从acorn fork 出来的,只是基本都被重写了,但是有些acorn的算法仍热被沿用下来了。

他们区别还是有一些的:

  • @babel/parser不支持第三方的插件。

  • acorn只支持第四阶段的提案(基本等于写入标准了,只是时间的问题 见此)。

  • AST的格式不同,不过可以启动@babel/parserestree插件来和acorn的AST格式匹配

babel/issues#11393

Last updated