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

配置

Bun 读取你的 tsconfig.json 或 jsconfig.json 以确定如何在内部执行 JSX 转换。如果你不想使用这些配置,可以在 bunfig.toml 中设置相同的选项。 Bun 遵循以下编译器选项。

jsx

JSX 结构如何在内部转换为普通 JavaScript。下表列出了 jsx 的可能值,以及每个值如何转译这个 JSX 组件:

jsxFactory

仅在 jsx 为 react 时适用。
用于表示 JSX 结构的函数名。默认值为 "React.createElement"。为像 Preact 这样使用不同函数名("h")的库设置此选项。

jsxFragmentFactory

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

jsxImportSource

仅在 jsx 为 react-jsx 或 react-jsxdev 时适用。
组件工厂函数(如 createElement、jsx 或 jsxDEV)导入来源的模块。默认值为 "react"。在使用 Preact 等组件库时通常需要设置此选项。

JSX pragma

你可以通过 pragma(一种注释)在每个文件中设置这些值中的任何一个,从而在特定文件中设置编译器选项。

日志输出

Bun 为 JSX 实现了特殊的日志输出以方便调试。给定以下文件:
index.tsx
Bun 会美化打印组件树:
JSX 日志输出

Prop 简写

Bun 运行时还支持 JSX 的”prop 简写”:一种将变量赋值给同名 prop 的简写方式。
react.tsx