【发布时间】:2022-02-10 06:22:21
【问题描述】:
我们在 Windows Server 2012R2 Web 服务器上安装了 Node.js。一位开发人员使用 Next/React/Node 为我们创建了一个应用程序(我不是 Web 开发人员,所以我不确定所使用的各种开发工具的细节)。这个应用程序在命令行上手动启动时可以正常工作,如下所示:
C:\NodeApps\pacifield>"C:\PROGRAM FILES\NODEJS\NODE.EXE" C:\NodeApps\pacifield\node_modules\next\dist\bin\下一个开始
但是,这需要有人在服务器重新启动或应用因任何原因停止时手动登录并重新启动应用。我正在尝试设置 PM2 来运行该应用程序。在您浏览到该应用程序之前,它已启动并运行良好 - 此时您会收到以下错误:
next-server.ts:306 Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
at resolveDispatcher (c:\NodeApps\pacifield\node_modules\react\cjs\react.development.js:1476:13)
at useContext (c:\NodeApps\pacifield\node_modules\react\cjs\react.development.js:1484:20)
at useSession (c:\NodeApps\pacifield\node_modules\next-auth\dist\client\index.js:75:39)
at Provider (c:\NodeApps\pacifield\node_modules\next-auth\dist\client\index.js:588:12)
at processChild (C:\NodeApps\pacifield\node_modules\react-dom\cjs\react-dom-server.node.development.js:3353:14)
at resolve (C:\NodeApps\pacifield\node_modules\react-dom\cjs\react-dom-server.node.development.js:3270:5)
at ReactDOMServerRenderer.render (C:\NodeApps\pacifield\node_modules\react-dom\cjs\react-dom-server.node.development.js:3753:22)
at ReactDOMServerRenderer.read (C:\NodeApps\pacifield\node_modules\react-dom\cjs\react-dom-server.node.development.js:3690:29)
at Object.renderToString (C:\NodeApps\pacifield\node_modules\react-dom\cjs\react-dom-server.node.development.js:4298:27)
at Object.renderPage (C:\NodeApps\pacifield\node_modules\next\dist\server\render.js:596:45)
我已经检查过,在 C:\NodeApps\pacifield\node_modules\react 中只有一个 React 安装,当它在 PM2 之外运行良好时,其他建议似乎没有意义。当应用程序从命令行与 PM2 运行时,我已使用 ProcessExplorer 检查所有环境变量都是相同的(除了 PM2 添加的其他变量)。
大家有什么建议吗?
【问题讨论】:
标签: node.js reactjs next.js pm2