有js轮子能实现编译js源代码,生成抽象语法树吗?

如题, 想要在一个js文件的特定位置插入内容, 想了下可以生成抽象语法树再插入.

但是自己写一个js编译器,得多大的工作量啊.

阅读 3.7k
4 个回答

可以参考一下一些模板引擎的实现方式。

babel的核心模块编译es6的成es5的的思路死将es6转化为es6语法树,然后将es6语法树转化为es5语法树,然后将es5语法树转化为es5代码,你可以去使用一哈babel,或者是将其中的使用的代码接下来,删掉不需要的,这样比自己实现简单
babel网址:https://github.com/babel/babel

在js文件编译前用node.js 直接在特定位置插入。
举例来说,你的test.js 文件如下

function testA() {
}
function testB() {
}

如果你想在testA 和 testB 之间插入一段js 代码,你可以改写test.js 如下

function testA() {
}
{insertcontent}
function testB() {
}

这样test.js 就变成了一个js 模版文件,你在编译前从其他地方(一个文件或者是一串自负)读出要插入的insertcontent,利用 dot.js 进行运算,就可以生成你想要的js文件。

生成完代码你接着做打包之类的事情。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题