【发布时间】:2014-12-12 16:55:00
【问题描述】:
是否有任何模块可以使用 node.js 解析 javascript。我的意思是我们能够使用cheerio nodejs 模块动态添加和删除html 内容。
同样,我们想要添加、删除和操作一个 javascript 方法/变量。是否有任何模块可以做到这一点。我搜索了但找不到。
提前致谢!!!
【问题讨论】:
-
你只想要
eval()吗?
标签: node.js
是否有任何模块可以使用 node.js 解析 javascript。我的意思是我们能够使用cheerio nodejs 模块动态添加和删除html 内容。
同样,我们想要添加、删除和操作一个 javascript 方法/变量。是否有任何模块可以做到这一点。我搜索了但找不到。
提前致谢!!!
【问题讨论】:
eval()吗?
标签: node.js
我会推荐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);
【讨论】: