问题描述
替换所有数组声明的示例:
let arrayDeclarations
const customPlugin = () => {
return {
visitor: {
Program(path) {
arrayDeclarations = []
path.node.body.unshift(t.variableDeclaration('const',arrayDeclarations))
},ArrayExpression(path) {
const newUniqueName = // Todo
const arrayIdentifier = t.identifier(newUniqueName)
arrayDeclarations.push(t.variableDeclarator(arrayIdentifier,path.node))
path.replaceWith(arrayIdentifier)
}
}
}
}
解决方法
在babel handbook中找到答案:
const newUniqueName = path.scope.generateUidIdentifier('a')