基于 esprima 的,相比 esprima 及 estools 工具集,其通过 path 可以很容易的在 AST 上遍历 node
npm i -g jscodeshift
- var 转换成 let
# transform.js (需要在 astexplorer 中查看AST中 tree ,找到 var)
export default function transformer(file, api) {
const j = api.jscodeshift;
return j(file.source)
.find(j.VariableDeclaration, { kind: 'var'})
.forEach(path => {
const letStatement = j.variableDeclaration('let', path.node.declarations)
j(path).replaceWith(letStatement)
})
.toSource();
}
# 执行命令
jscodeshift -t transform.js input-file.js -d -p