0

我正在使用 jscodeshift 提取某些来源的片段并将它们移动到一个新文件中。

我想使用 recast 的 API 创建一个合适的程序主体,但我没有找到可行的方法。

jscodeshift 公开了程序构建器,但没有适当的主体构建器,并且没有一个构建器与 StatementKind 的预期形状匹配。

这是我尝试过的:

    j.program(
        j.variableDeclaration('const', [
            j.variableDeclarator(j.identifier('test'), j.stringLiteral('foo'))
        ])
    );

但我得到这个错误:

“VariableDeclaration”类型的参数不能分配给“StatementKind[]”类型的参数。

有什么惯用的方法来实现这一点吗?或者我应该只构建节点,将它们推送到已经转换为字符串的数组(使用toSource),然后将该数组写入目标文件?这就是我现在正在做的事情,但我猜测是否有更好的方法。

4

0 回答 0