escodegen.generate 抛出错误:未知节点类型:未定义



以下是我编写的代码

`js
  var esprima = require('esprima');
  var escodegen = require('escodegen');
  var a = "var a = 2";
  var ast = esprima.tokenize(a);
  var output = escodegen.generate(ast);
  console.log(output);
`

我能够标记代码字符串,但生成代码时出错。我浏览了多个样本,到处都遵循相同的模式。我不明白我做错了什么。

函数esprima.tokenize不生成 AST,只生成一个令牌数组。您要使用的是 esprima.parse .

试试这个:

  var esprima = require('esprima');
  var escodegen = require('escodegen');
  var a = "var a = 2";
  var ast = esprima.parse(a);
  var output = escodegen.generate(ast);
  console.log(output);

它会工作

最新更新