Nodemon 和/或使用 Node-React Web 应用程序进行热重载

2024-03-10

在使用 webpack 配置 Web 应用程序以创建最佳开发体验方面,我还很陌生。我参加了两门不同的 Node-React 课程:一门我们使用 nodemon 来跟踪更改,另一门我们实现热重载。

当涉及到这两种依赖关系时,是一个还是另一个呢?它们应该一起使用,还是有点多余?

另外,如果我在客户端使用带有 React 的 Express 服务器,我是使用 React-hot-loader、webpack-hot-middleware 还是两者都使用?我对热重载采取哪种方法感到困惑,因为似乎有很多方法可以做到这一点。

另外,当我使用 nodemon 作为包装器(nodemon --exec babel-node server.js)时,我的热模块重新加载不起作用,但我仍然发现自己需要一种轻松重新启动服务器的方法。

谢谢。


去掉这些花哨的术语,它们基本上都在做同样的事情 - “密切关注(观察)您的本地编辑(文件系统更改)并为您更新应用程序”,因此它们都是旨在促进的开发工具/加速你的开发过程。(不适用于生产)

Nodemon负责服务器端(Express),而 Webpack(监视模式)则负责客户端(React)。

没有太多的魔力,Nodemon 只是在文件更改时重新启动/重新加载您的 Express 服务器,否则您需要手动终止并重新启动。

然而,Webpack(启用监视模式,通常在开发周期中)有点复杂,它监视您的客户端代码更改,但在

  1. 热模块更换 https://webpack.js.org/concepts/hot-module-replacement/- 重新编译更改的模块而不完全重新加载
  2. webpack-dev-中间件 https://github.com/webpack/webpack-dev-middleware- 通过连接的服务器提供结果

重新编译过程非常快,可以通过以下任一方式从本地开发服务器提供服务:

  • webpack-开发服务器 https://github.com/webpack/webpack-dev-server提供更改的模块和实时重新加载(连接到浏览器并硬刷新页面)
  • webpack-dev-中间件 https://github.com/webpack/webpack-dev-middleware+ Express/Koa 服务器,可以执行相同的操作,但您可以获得更多控制,例如提供静态文件或创建一些 api 路由。

尽管实时重新加载很酷,但由于页面的硬刷新会导致应用程序丢失所有客户端状态(破坏许多开发工具,例如 redux 开发工具),反应热加载器 https://github.com/gaearon/react-hot-loader在这种情况下来救援。

一般来说,根据你的 Express + React 应用程序,我会设置Nodemon对于快递。对于 React,如果您希望独立的开发服务器开箱即用,请选择webpack-dev-server + react-hot-loader,或者您想要在现有 Express 服务器之上集成开发服务器并进行一些自定义,请使用webpack-dev-middleware + react-hot-loader反而。 (无论如何,HMR 需要作为 webpack 插件添加)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodemon 和/或使用 Node-React Web 应用程序进行热重载 的相关文章

随机推荐