首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用ReasonReact项目中的每个文件

禁用ReasonReact项目中的每个文件
EN

Stack Overflow用户
提问于 2020-08-31 09:31:15
回答 1查看 93关注 0票数 0

在ReasonReact项目的某些文件中是否有一种禁用-jsx转换的方法?

我认为,如果不将"reason": { "react-jsx": 3 }添加到bsconfig.json中,并将@@bs.config({jsx: 3})添加到您想要反应的文件的顶部--jsx转换,则可能会相反,但这将迫使我将该注释添加到太多的文件中。

我想在几个文件中构建一个基于JSX的小型DSL,同时从我项目的其余部分中受益。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 23:19:59

注意:建议的解决方案不是很直接,我认为在所有必需的文件中显式添加@@bs.config注释要简单得多,但是如果您真的不想这样做,下面的建议可能会奏效。

如果我正确地读取编译器代码,用户定义的ppxs将在ReasonReact ppx之前应用。在链接编译器模块中,Cmd_ppx_apply.apply_rewriters将应用于使用-ppx标志传递的所有参数,而Ppx_entry.rewrite_implementation是ReasonReact ppx。

假设这是真的,那么就可以在文件的顶部检查一个顶级语句(如@@custom.jsx ),而ppx将检查它。ReasonReact ppx 曾经有过类似的支票,以防它用作参考。

然后,如果找到该语句,则自定义ppx将处理具有@JSX属性的节点,并确保从它们中删除属性,因此当编译器将AST传递给ReasonReact ppx时,它不会看到它们。

注意,如果有一天ReScript ppx管道被更新为基于驱动程序的管道(我不太可能这样说,因为这意味着ReScript应该以某种方式支持本地库作为第一类公民),或者如果上面提到的顺序在用户定义的库之前适用,则会中断。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63668256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档