每次我需要进行 React 更改时如何避免重新启动服务器?

Posted

技术标签:

【中文标题】每次我需要进行 React 更改时如何避免重新启动服务器?【英文标题】:How to avoid restarting server every time I need to make a React change? 【发布时间】:2017-06-30 20:42:28 【问题描述】:

我在我的 React 环境中遇到问题,每次我想在浏览器中查看更新时,我都必须重新启动('npm start')我的服务器。其他人似乎可以简单地刷新浏览器而无需重新启动服务器。

例如,如果我在其中一个 React 组件中进行更新,我不能简单地刷新网页,我必须重新启动整个服务器。

有什么建议可以解决这个问题,这样我就不需要每次都重新启动了吗?

【问题讨论】:

npm start对应什么命令?查看您的package.json 更新您的节点,这似乎您正在运行一个非常旧的版本。 我在最近的应用程序上使用了 create-react-app,但我仍然在我正在处理的所有应用程序中看到这个问题,无论它是拉代码还是我从头开始,所以我没有不要怀疑这是我的 package.json 文件中的问题。感谢您查看此内容。 【参考方案1】:

将应用程序移出 Dropbox 目录后,此问题已得到解决。

当我将应用程序移出 Dropbox 目录后,我不再需要在对 React 组件进行任何编辑时手动重新启动服务器。请注意,该应用程序可以正常工作并使用 Google 云端硬盘自动刷新 (链接到云端)或我的 HD 上的一般非云端链接文件夹

【讨论】:

【参考方案2】:

我在使用 Visual Studio Code 时遇到了同样的问题。当我进行更改时,什么都没有出现。 VC 给了我一个提示,说

“Visual Studio Code 无法监视这个大型工作区中的文件更改”

所以我发现这些instructions 解决了这个问题。可能是相关的。

当您看到此通知时,它表明 VS Code 文件观察程序的句柄已用完,因为工作区很大并且包含许多文件。可以通过运行查看电流限制:

cat /proc/sys/fs/inotify/max_user_watches

可以通过编辑/etc/sysctl.conf 并将此行添加到文件末尾来将限制增加到最大值:

fs.inotify.max_user_watches=524288

然后可以通过运行sudo sysctl -p 加载新值。请注意,Arch Linux 的工作方式略有不同,有关详细信息,请参阅增加 inotify 观察者的数量。

【讨论】:

【参考方案3】:

查看 Facebook 上的Create-React-App。它拥有开发 React 应用程序所需的所有基本工具。

【讨论】:

我使用 create-react-app 创建了最新的应用程序,但这个文件或我从头开始创建的其他 React 应用程序都无法解决这个问题。我升级和降级了不同版本的节点,但是每次我想在 chrome 浏览器中看到更改时,我仍然必须重新启动服务器。找到这个问题的答案是一项挑战。似乎是一个孤立的问题。我也卸载并重新安装了节点。感谢您调查这一切。 @jpdelatorre create-react-app 不做 s-s-r【参考方案4】:

我结合使用 Webpack 来捆绑 js 代码和 Nodemon 来重启服务器。它们都具有监视功能,因此它们可以监视代码以查看是否有任何更改。

似乎是我研究的常态。

【讨论】:

以上是关于每次我需要进行 React 更改时如何避免重新启动服务器?的主要内容,如果未能解决你的问题,请参考以下文章

每次 Gulpfile 更改后如何重新启动 Gulp?

React:如何停止重新渲染组件或对同一路由更改路由器进行 API 调用

如何避免为 python 文件中的每个更改重新启动 apache 服务器?

我应该在每次使用 ExpressJS/Node 更改时重新启动应用程序服务器吗? [复制]

更改 CSS 文件时 React 不更新

React(性能):如何防止每次状态更改时出现不必要的渲染? [复制]