2
我正在尝试使用babel模块,babylon
,babel-traverse
。当我试图更换一个节点时,程序崩溃Maximum call stack size exceeded
。这是我的代码Babel,使用path.replace时超出最大调用堆栈大小
import * as babylon from 'babylon'
import traverse from 'babel-traverse'
import generate from 'babel-generator'
import * as t from 'babel-types'
const code = `
import a from 'b'
n === 3
`
const ast = babylon.parse(code, {
sourceType: 'module'
})
const visitor = {
BinaryExpression(path) {
console.log((path.node))
path.replaceWith(t.binaryExpression('**', t.numericLiteral(3), t.numericLiteral(4)))
}
}
traverse(ast, visitor)
let generated = generate(ast, null, code)
console.log(generated.code)
而且我使用下面的babel依赖关系,任何想法?
"dependencies": {
"babel-generator": "^6.9.0",
"babel-preset-es2015": "^6.9.0",
"babel-traverse": "^6.9.0",
"babel-types": "^6.9.1",
"babylon": "^6.8.0"
}
我很惊讶没有人提出了解决方案呢。 –