1

我正在尝试 jscodeshift,每当我尝试插入新表达式时,我都会收到以下错误

{operator: ==, left: [object Object], right: [object Object], loc: null, type: BinaryExpression, comments: null} does not match type string

这是我的小测试中的内容:

  var testBinary = j.binaryExpression("==", j.literal(2), j.literal(3))

  return j(file.source)
    .find(j.IfStatement)
    .insertBefore(testBinary)
    .toSource();

你可以在这里试试https://astexplorer.net/#/P6euf9XIlR/1

如果我使用 j(file.source).find().replaceWith() 它没有任何问题。

我在这里做错了什么?

4

1 回答 1

0

利用:

var testBinary = j.binaryExpression("==", j.literal(2), j.literal(3)),
  root = j(j(file.source);


    j(root.find(j.IfStatement).at(0).get())
    .insertBefore(testBinary);

    return root.toSource();
于 2017-09-05T10:32:42.407 回答