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

配置

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

jsx

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

jsxFactory

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

jsxFragmentFactory

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

jsxImportSource

仅适用于 jsxreact-jsxreact-jsxdev 的情况。
组件工厂函数(如 createElementjsxjsxDEV)导入自的模块。默认值为 "react"。使用 Preact 这类组件库时,通常需要设置此选项。

JSX 编译指令

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

日志记录

Bun 实现了 JSX 的特殊日志功能以便调试。以下文件为例:
index.tsx
Bun 会以漂亮的格式打印组件树:
JSX 日志输出

属性快速赋值(Prop punning)

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