remix 软件包一起分发。在处于 beta 阶段期间,它以 npm 上的 next 标签发布,并且其服务器可以直接运行在 Bun 上。
本指南介绍 Remix 3。Remix 2 项目应改用
create-remix 创建。使用 Remix CLI 搭建一个新项目。
terminal
terminal
生成的
server.ts 会创建一个 node:http 服务器,将每个请求交给应用的路由器处理。Bun 会直接运行它;传入 --watch 后,每当它导入的文件发生更改时,服务器都会重启。
terminal
app/routes.ts 和 app/router.ts 中,起始主页由 app/actions/home-page.tsx 渲染。
package.json 中生成的 scripts 会使用 Node.js 和 remix/node-tsx TypeScript 加载器运行服务器。Bun 会自行运行 TypeScript,因此请改为让脚本指向 bun。
package.json
terminal
生成的
hmr 脚本(hmr.ts)也会加载 remix/node-tsx,而它依赖 module.registerHooks()。Bun 尚未实现该 API(参见 Node.js 兼容性),因此该脚本无法在 Bun 下运行;而 bun --watch 会在发生更改时重启服务器。路由器是一个
fetch 处理器,因此也可以使用 Bun.serve() 提供应用服务,而不是使用 node:http。
server.ts
请参阅 Remix 文档以了解更多信息。