Skip to content

Latest commit

 

History

History
39 lines (26 loc) · 831 Bytes

1.2.8 jscodeshift js代码修改工具.md

File metadata and controls

39 lines (26 loc) · 831 Bytes

jscodeshift 是一个 Javscript Codemod 工具

基于 esprima 的,相比 esprima 及 estools 工具集,其通过 path 可以很容易的在 AST 上遍历 node

install

npm i -g jscodeshift

Usage

  • 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

参考