.jsx 和 .tsx 文件。Bun 的内部转译器会在执行前将 JSX 语法转换为原生 JavaScript。
react.tsx
配置
Bun 会读取你的tsconfig.json 或 jsconfig.json,以确定如何在内部执行 JSX 转换。如果你不想使用其中任何一个,也可以在 bunfig.toml 中设置相同的选项。
Bun 支持以下编译器选项。
jsx
JSX 构造在内部如何转换为原生 JavaScript。下表列出了 jsx 的可能取值,以及每个取值如何转译以下 JSX 组件:
jsxFactory
仅适用于
jsx 为 react 的情况。"React.createElement"。对于使用不同函数名称("h")的库(如 Preact),可以设置此选项。
jsxFragmentFactory
仅适用于
jsx 为 react 的情况。<>Hello</>)的函数名称。默认值为 "React.Fragment"。
jsxImportSource
仅适用于
jsx 为 react-jsx 或 react-jsxdev 的情况。createElement、jsx 或 jsxDEV)导入自的模块。默认值为 "react"。使用 Preact 这类组件库时,通常需要设置此选项。
JSX 编译指令
你可以使用 编译指令 为每个文件单独设置这些值。编译指令是一条注释,用于在特定文件中设置编译器选项。日志记录
Bun 实现了 JSX 的特殊日志功能以便调试。以下文件为例:index.tsx
属性快速赋值(Prop punning)
Bun 运行时也支持 JSX 中的“属性快速赋值”:这是一种将变量赋值给同名属性的简写方式。react.tsx