Как вставить один узел в абстрактное синтаксическое дерево с помощью JavaScript (esprima) - PullRequest
0 голосов
/ 08 января 2019

возникает вопрос об esprima и вставке аст-узла.

Я пытаюсь сгенерировать один узел ast, чтобы заменить другой узел новым узлом (node ​​= newNode), но он не работает.

    estraverse.traverse(tree, {
enter(node, parent) {
try {
    if (node.type === "ExpressionStatement") {
        if(node.expression.right.type == "FunctionExpression"){
            // the id attribution can be replaced
            node.expression.right.id = node.expression.left;
            // but node can not be replaced
            node = node.expression.right;
            node.type = "FunctionDeclaration";
        }
    }
} catch (error) {

}
},});
...