通过Mitosis编译builder格式JSON为React组件为空如何解决
问题解答
1. 关于builder输入格式的认知验证
你的这个认知是错误的。-f builder 对应的输入格式是Builder.io CMS的内容条目JSON结构,和Mitosis官方在线编译器输出的JSON格式完全不同。在线编译器输出的JSON是Mitosis自身的组件中间表示(IR)格式,不属于builder格式范畴。
2. 输出空组件的原因
因为你指定了错误的输入格式参数-f builder,Mitosis CLI按照Builder.io CMS的结构规则解析你传入的Mitosis IR JSON,完全识别不到组件的模板、逻辑、属性等有效内容,最终只能生成没有任何业务代码的空组件。
3. 解决方法
有两种适配方案可选:
- 如果你要使用从Mitosis在线编辑器导出的JSON作为输入,直接移除命令中的
-f builder参数即可,Mitosis CLI会自动识别输入的JSON是自身的中间表示格式,完成正常编译:
执行上述命令后,输出的组件内容会和直接编译mitosis compile -t react --out=build/myCustomName.js component.jsoncomponent.jsx的结果完全一致。 - 如果你确实需要使用
-f builder参数指定builder格式作为输入,需要更换输入文件为从Builder.io CMS导出的组件结构JSON,而非Mitosis在线编辑器导出的JSON。
内容的提问来源于stack exchange,提问作者stckvrw
相关产品推荐
相关产品推荐

