我正在使用 jscodeshift 提取某些来源的片段并将它们移动到一个新文件中。
我想使用 recast 的 API 创建一个合适的程序主体,但我没有找到可行的方法。
jscodeshift 公开了程序构建器,但没有适当的主体构建器,并且没有一个构建器与 StatementKind 的预期形状匹配。
这是我尝试过的:
j.program(
j.variableDeclaration('const', [
j.variableDeclarator(j.identifier('test'), j.stringLiteral('foo'))
])
);
但我得到这个错误:
“VariableDeclaration”类型的参数不能分配给“StatementKind[]”类型的参数。
有什么惯用的方法来实现这一点吗?或者我应该只构建节点,将它们推送到已经转换为字符串的数组(使用toSource
),然后将该数组写入目标文件?这就是我现在正在做的事情,但我猜测是否有更好的方法。