Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义babel插件-无法遍历(访问)JSXElement_Javascript_Reactjs_Babeljs - Fatal编程技术网

Javascript 自定义babel插件-无法遍历(访问)JSXElement

Javascript 自定义babel插件-无法遍历(访问)JSXElement,javascript,reactjs,babeljs,Javascript,Reactjs,Babeljs,我试图写一个自定义巴别塔转换插件。在中查看React组件的AST时,我将树中的JSXElement视为节点 但是,当我尝试记录访问者JSXElement的路径时,没有任何内容记录到控制台 反应组分 const HelloWorld = () => <span>Hello World</span> 如果有帮助,我将transform.test.js放在弹出的createreact应用程序项目中。CRA带有内置的预设react应用程序 我使用命令jest transf

我试图写一个自定义巴别塔转换插件。在中查看React组件的AST时,我将树中的JSXElement视为节点

但是,当我尝试记录访问者JSXElement的路径时,没有任何内容记录到控制台

反应组分

const HelloWorld = () => <span>Hello World</span>
如果有帮助,我将transform.test.js放在弹出的createreact应用程序项目中。CRA带有内置的预设react应用程序


我使用命令jest transform.test.js运行测试,并且在CRA jest设置中默认应用了babel jest transform

我认为您正在将组件传递给Babel,而不是组件的代码,您需要将实际代码转换为字符串,例如,类似以下内容:

const{code,ast}=transformSync`const HelloWorld==>HelloWorld`{ 是的, 插件:[ 函数myown插件{ 返回{ 参观者:{ JSXElementpath{ //没有任何日志记录到控制台 console.logpath; } } }; }, ] };```
就这样。谢谢@mitchell hamilton。在自定义插件之前,我还必须使用插件@babel/plugin transform react jsx,但现在我可以遍历JSXElement了。
"babel": {
    "presets": [
      "react-app"
    ]
  }