jscodeshift是一个用于在多JS文件运行codemod的工具包,它提供:
一个runner,它可在每个传递给它的文件之间提供转换,还能输出转换文件的数量。
recast的包装,提供不同的API。Recast是一个AST-to-AST转换工具,并且会尽可能地保护代码的原有风格。
示例代码:
// Adding a method to all Identifiersjscodeshift.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
评论