Next.js 应用程序在生产中频繁重新加载

bon*_*opc 10 nginx express reactjs webpack next.js

我刚刚通过 Nginx 和 pm2 在生产中部署了我的第一个 Next.js 应用程序。一切看起来都很好,但应用程序在浏览器上经过一段时间间隔后经常重新加载。我看到它webpack-hmr也在我的production服务器上运行。(我认为在生产中没有必要)

我正在使用自定义server.js,并使用next buildthenNODE_ENV=production node server.js命令在生产中运行我的应用程序,并使用pm2.

我在下面添加了我的开发工具的网络选项卡的屏幕截图,该选项卡显示了在production. 如果HMR这是浏览器重新加载的可能原因,那么我应该如何在生产中禁用它?

另外,如果由于 HMR 而没有发生“频繁重新加载”,那么原因是什么?

显示 HMR 运行的 devtools 网络选项卡的屏幕截图

大家在制作过程中是否也遇到过同样的问题呢?如果是这样,请分享您的知识和经验。谢谢。

编辑:我也在使用next-pwa并且我的控制台上不断显示警告 -

GenerateSW 已被多次调用,可能是由于在 --watch 模式下运行 webpack 所致。第一次调用后生成的预缓存清单可能不准确!请参阅https://github.com/GoogleChrome/workbox/issues/1790了解更多信息。

小智 13

pwa通过在开发时禁用来修复它

const prod = process.env.NODE_ENV === 'production'

module.exports = withPWA({
            pwa: {
                dest: 'public',
                disable: prod ? false : true
                }
             })

Run Code Online (Sandbox Code Playgroud)


bon*_*opc 0

终于找到了解决办法。当启动 pm2 时,我必须告诉我的环境模式pm2 start server --env production。它在我的浏览器上完美运行。