2016-05-03 7 views
1

Ich versuche jscodeshift und ich erhalte die folgende Fehlermeldung, wenn ich versuche, einen neuen Ausdruck einzufügenERROR {...} nicht Typ String übereinstimmen, wenn das Hinzufügen Ausdruck mit jscodeshift

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

Dies ist, was ist in meinem kleinen Test:

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

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

Sie können es hier https://astexplorer.net/#/P6euf9XIlR/1

ausprobieren, wenn ich j (file.source) .find() verwenden, replaceWith() funktioniert es überhaupt kein Problem..

Was mache ich hier falsch?

+2

, die tatsächlich wie Fehler aussieht, oder zumindest etwas, das ich brauche mehr zu untersuchen. Bitte reichen Sie ein Problem unter https://github.com/facebook/jscodeshift ein. –

+0

Ich habe ein Problem hier gescheitert: https://github.com/facebook/jscodeshift/issues/161 –

Antwort

0

Verwendung:

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();