Skip to main content
Bun 支持 .jsx 和 .tsx 文件。Bun 的内部转译器会在执行前将 JSX 语法转换为原生 JavaScript。
react.tsx

配置

Bun 会读取你的 tsconfig.json 或 jsconfig.json,以确定如何在内部执行 JSX 转换。如果你不想使用其中任何一个,也可以在 bunfig.toml 中设置相同的选项。 Bun 支持以下编译器选项。

jsx

Bun 在内部如何将 JSX 结构转换为原生 JavaScript。下表列出了 jsx 的可能值,以及每种值如何转译此 JSX 组件:

jsxFactory

仅适用于 jsx 为 react 的情况。
用于表示 JSX 构造的函数名称。默认值为 "React.createElement"。对于使用不同函数名称("h")的库(如 Preact),可以设置此选项。

jsxFragmentFactory

仅适用于 jsx 为 react 的情况。
用于表示 JSX 片段(例如 <>Hello</>)的函数名称。默认值为 "React.Fragment"。

jsxImportSource

仅适用于 jsx 为 react-jsx 或 react-jsxdev 的情况。
组件工厂函数(如 createElement、jsx 或 jsxDEV)导入自哪个模块。默认值为 "react"。使用 Preact 之类的组件库时通常需要此选项。

JSX 编译指令

你可以使用 编译指令 为每个文件单独设置这些值。编译指令是一条注释,用于在特定文件中设置编译器选项。

日志记录

Bun 会针对 JSX 实现特殊的日志记录功能,以帮助调试。以下面的文件为例:
index.tsx
Bun 会以漂亮的格式打印组件树:
JSX 日志输出

属性快速赋值(Prop punning)

Bun 运行时也支持 JSX 中的“属性快速赋值”:这是一种将变量赋值给同名属性的简写方式。
react.tsx