jscodeshift - Facebook JS 工具包


BSD
跨平台
JavaScript

软件简介

jscodeshift 是一个用于在多 JS 文件运行 codemod 的工具包,它提供:

  • 一个 runner,它可在每个传递给它的文件之间提供转换,还能输出转换文件的数量。

  • recast 的包装,提供不同的 API。Recast 是一个 AST-to-AST 转换工具,并且会尽可能地保护代码的原有风格。

示例代码:

// Adding a method to all Identifiers
jscodeshift.registerMethods({    
   logNames: function() {        
      return this.forEach(function(path) {            
        console.log(path.node.name);
        });
    }
}, jscodeshift.Identifier);
// Adding a method to all collectionsjscodeshift.registerMethods({    
      findIdentifiers: function() {        
         return this.find(jscodeshift.Identifier);
    }
});

jscodeshift(ast).findIdentifiers().logNames();
jscodeshift(ast).logNames(); // error, unless `ast` only consists of Identifier nodes