2014-12-11 52 views
0

是否有任何模块使用node.js解析JavaScript。我的意思是我们可以使用cheerio nodejs模块动态添加和删除html内容。Javascript解析使用NodeJS

同样,我们想要添加,删除和操作JavaScript方法/变量。有没有任何模块可以做到这一点。我搜查,但无法得到一个。

在此先感谢!

+1

http://esprima.org/ – 2014-12-11 05:55:22

+1

你只是想'的eval()'? – jfriend00 2014-12-11 06:41:16

回答

2

我会推荐recast模块。通过npm install --save recast安装它。下面是一个示例程序,它将读取当前目录中名为user.js的模块的源代码。它会将来源解析为AST,然后从AST重新生成原始来源。在拨打recast.print(ast).code之前,请在estraverse的帮助下修改AST。

源(不包括estraverse - 读者练习):

'use strict'; 

var recast = require('recast'); 
var path = require('path'); 
var fs = require('fs'); 

var file = path.resolve(__dirname, 'user.js'); 
var code = fs.readFileSync(file).toString(); 
var ast = recast.parse(code); 

var output = recast.print(ast).code; 

console.log(output);