reactjs 如何在React应用程序中使用Bun启用热扩展?

rqenqsqc  于 9个月前  发布在  React
关注(0)|答案(3)|浏览(149)

我一直在开发一个React应用程序,并决定使用Bun作为我的JavaScript运行时,因为它的性能很好。然而,我似乎偶然发现了一个关于React应用程序热重载的问题。
我使用命令bun --watch run dev.tsx启动应用程序,它最初运行得很好。但是,当我对App.js文件(或任何其他文件)进行更改时,这些更改不会实时反映在浏览器中。即使在保存文件后,我也必须手动重启服务器才能看到更改。我希望--watch标志能够支持某种热重新加载,但它似乎没有。
下面是我在终端中运行的程序:

Listening on http://localhost:3000
GET /
GET /index.css
GET /index.js
GET /bunlogo.svg
GET /favicon.ico
GET /manifest.json
GET /logo192.png

我想知道Bun是否内置了对热模块替换(HMR)的支持,或者当我对文件进行更改时,是否有任何解决方案可以在浏览器中启用实时重新加载。
任何帮助或指导将不胜感激。谢谢

zqdjd7g9

zqdjd7g91#

使用Bun,您可以使用观看模式:
--watch,当导入的文件发生变化时,它会硬重启Bun的进程。
用途:

bun --watch dev.tsx

官方文档链接:https://bun.sh/docs/runtime/hot#hot-mode

mutmk8jj

mutmk8jj2#

你可以在bun中使用--hot模式或--watch模式。
--watch模式会在导入的文件发生变化时硬重启Bun的进程。
--hot模式将软重新加载代码(无需重新启动进程)时,导入的文件更改。
最好使用bun --hot来启用在使用Bun执行代码时的热重载。这与--watch模式的不同之处在于,Bun不会硬重启整个进程。相反,它检测代码更改并使用新代码更新其内部模块缓存。

使用--hot模式:

bun --hot dev.tsx

**注意:**根据官方文档,这与浏览器中的热重装不同。许多框架都提供了“热重载”体验,在这里你可以编辑和保存你的前端代码(比如说,一个React组件),并在浏览器中看到反映的变化,而无需刷新页面。Bun的--hot是这种体验的服务器端等价物。
参考:

[0][https://bun.sh/docs/runtime/hot](https://bun.sh/docs/runtime/hot)

3qpi33ja

3qpi33ja3#

Bun v0.x有一个bun dev命令,它具有热重载React的功能,但它在1.0中被删除了。
HMR在Issue 833中讨论。
Bun的--hot选项并不像@samnoon在他的回答中所说的那样用于在浏览器上进行热重装,但是无论如何,我们有几种方法可以在浏览器中进行热重装:
1.使用像Vite这样的框架来热重载。(推荐在bun's docs)

相关问题