escodegen.generate throws Ошибка: неизвестный тип узла: не определено
Ниже приведен код, который я написал
`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);
`
Я могу токенизировать строку кода, но получаю сообщение об ошибке при генерации кода. Я прошел несколько сэмплов, везде везде одинаковая схема. Я не понимаю, что я делаю не так.
1 ответ
Решение
Функция 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);
Это будет работать