NextJS - ReferenceError:请求未定义 | 读取旧版本的 Node [已解决]

Luc*_*tys 7 node.js npm nvm reactjs next.js

当我在 nextjs 项目中运行 npm run dev 时,出现以下错误:

.../node_modules/next/dist/server/web/spec-extension/request.js:28
class NextRequest extends Request {
                          ^

ReferenceError: Request is not defined
    at Object.<anonymous> (.../node_modules/next/dist/server/web/spec-extension/request.js:28:27)
    at Module._compile (node:internal/modules/cjs/loader:1097:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at Module.mod.require (.../node_modules/next/dist/server/require-hook.js:64:28)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (.../node_modules/next/dist/server/web/spec-extension/adapters/next-request.js:37:18)
    at Module._compile (node:internal/modules/cjs/loader:1097:14)

Node.js v17.4.0
Run Code Online (Sandbox Code Playgroud)

当我运行 node -v 时,我得到:

v20.9.0
Run Code Online (Sandbox Code Playgroud)

我已经从我的机器上卸载了node并使用nvm重新安装了它。

据我了解,nextjs 和我安装的软件包正在抱怨,因为我没有使用所需的节点版本。然而,由于在我的终端中运行 node -v 时,我发现我正在使用 v20.9 我不知道为什么 Nextjs 没有检测到正确的节点版本

有人知道我该如何解决这个问题吗?

小智 26

在项目中打开终端,然后运行下面提到的命令

npm i node@lts


小智 9

我在使用低于 18 的 Node 版本时遇到了这个问题,这实际上是 nextJs 13 所需要的。如果您没有使用 Node 版本管理器,我建议您安装它,您可以在此处找到有关如何安装它的详细信息

然后运行nvm install 18此命令将安装并将您当前的版本设置为 18。然后只需运行yarn devnpm run dev即可启动您的开发服务器。


Luc*_*tys 1

我能够通过使用此问题的答案从我的计算机中完全卸载节点和 npm 来解决该问题。

然后我使用他们的官方网站再次安装了node和npm 。