我想在代码库中使用的约定是:
const a = 1;
const b = 2;
然而,代码中有很多地方是这样写的:
let a = 1,
b = 2;
我想写一个codemod,可能使用JSCodeshift,可以将变量声明的第二种样式更改为第一种。我一直在对 AST 进行一些研究,并一直在使用 AST explorer。但是,我无法访问抽象语法树中的变量声明符“kind”。
我尝试过的一个例子是:
module.exports = function(file, api) {
const j = api.jscodeshift;
const root = j(file.source);
// Step 1: Find all instances of the code to change
const instances = root.find(VariableDeclarator.value.kind = 'let');
// Step 2: Apply a code transformation and replace the code
instances.forEach(instance => {
j(path).replaceWith(VariableDeclarator.value.kind = 'const');
});
return root.toSource();
}
}
任何帮助或方向将不胜感激!谢谢!