使用jscodeshift添加表达式时,ERROR {...}与类型字符串不匹配

时间:2016-05-03 12:07:54

标签: javascript runtime-error jscodeshift

我正在尝试使用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()它没有任何问题。

我在这里做错了什么?

1 个答案:

答案 0 :(得分: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();