簡體   English   中英

Babel 插件:如何插入兄弟節點

[英]Babel Plugin: How to insert a sibling node

似乎 path.insertAfter()、path.insertBefore()、path.unshiftContainer() 和 path.pushContainer() 只適用於 Statements。 如何插入不是 Statements 的節點?

就我而言,我正在編寫一個 babel jsx 插件,並且我正在嘗試插入一個兄弟節點,它是一個 JSXExpressionContainer。 當我這樣做時,我收到以下錯誤:

TypeError: Property body[0] of BlockStatement expected node to be of a type ["Statement"] but instead got "JSXExpressionContainer"

我該如何解決?

這里的文檔:

FunctionDeclaration(path) {
  path.insertBefore(t.expressionStatement(t.stringLiteral("Because I'm easy come, easy go.")));
  path.insertAfter(t.expressionStatement(t.stringLiteral("A little high, little low.")));
}

查看您的錯誤,確保您正確輸入。 只需在這里檢查 babel 類型,看看每種類型需要什么參數。

我找到了一種解決方法,只需將代碼作為純文本推送即可。 React 似乎工作得很好。

path.node.children.push('<div>Click me</div>')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM