Next.js 上的 Node.js 版本错误

问题描述 投票:0回答:1

我对 Node.js 和 next.js 比较陌生,我刚刚在 Next.js 上启动了一个项目。我一打字

npm 运行开发

我收到以下错误:

您正在使用 Node.js 18.12.1。对于 Next.js,Node.js 版本需要 >= v18.17.0。

我自动做的第一件事就是更新节点。 现在如果我跑步

nvm 列表

我得到以下信息

v14.17.6
       v18.17.0
        v21.6.0
->       system
default -> v21.6.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v21.6.0) (default)
stable -> 21.6 (-> v21.6.0) (default)

如果我错了,请纠正我,但在我看来,我的系统中有 3 个节点版本,默认版本是 v21.6.0,是最新的。 我跑

节点-v

但我明白了

v18.12.1

我在列表中没有看到。酷,没问题,让我打字

nvm 使用 21.6.0

消息非常明确:现在使用节点 v21.6.0 (npm v10.3.0)

太好了,现在我们再跑一次吧

npm 运行开发

npm WARN cli npm v10.3.0 does not support Node.js v18.12.1. This version of npm supports the following node versions: `^18.17.0 || >=20.5.0`. You can find the latest version at https://nodejs.org/.

> [email protected] dev
> next dev

You are using Node.js 18.12.1. For Next.js, Node.js version >= v18.17.0 is required.

我该怎么办?我尝试了不同的方法,但总是得到相同的结果...... 有什么想法吗?

编辑

最初我以为这两行有干扰(来自FLY.io)

导出 FLYCTL_INSTALL="/home/tommaso/.fly" 导出 PATH=“$FLYCTL_INSTALL/bin:$PATH”

所以我从系统中删除了fly并摆脱了这些行。 ChatGPT 告诉我插入这一行:

导出路径=“/home/tommaso/.nvm/versions/node/v21.6.0/bin:/home/tommaso/.volta/bin:/usr/local/sbin:/usr/local/bin:/usr/ sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sn>

然而,当我运行 echo $PATH 时,结果前面是这一行:

/home/tommaso/.volta/bin:(其余如上)

现在不仅事情没有解决,而且当我跑步时

npm 运行开发

我得到以下信息:

npm WARN cli npm v10.3.0 does not support Node.js v18.12.1. This version of npm supports the following node versions: `^18.17.0 || >=20.5.0`. You can find the latest version at https://nodejs.org/.
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /home/tommaso/package.json
npm ERR! errno -2
npm ERR! enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/home/tommaso/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in: /home/tommaso/.npm/_logs/2024-01-23T23_22_43_070Z-debug-0.log
node.js next.js nvm
1个回答
0
投票

最后我犯了一个典型的错误:没有正确阅读路径。 我过去安装了 Volta,我什至不记得何时以及为何安装,这导致了整个问题。 Volta 显然“根据当前目录跟踪您正在处理的项目(如果有)。Volta 工具链中的工具会自动检测您何时处于使用特定版本工具的项目中,并注意路由到适合您的工具版本。”

根据网站,由于某种原因它没有更新我的项目所需的节点版本

我当时所做的就是打字

volta 安装节点

安装最新版本的节点。 然后我就跑了

npm 安装

并出现以下错误:

npm install npm WARN tarball 的 tarball 数据 Streamsearch@https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz (sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QnoNsuc+VsExg==) 似乎已损坏。再试一次。 npm WARN tarball 的 tarball 数据 Streamsearch@https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz (sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QnoNsuc+VsExg==) 似乎已损坏。再试一次。 npm 错误!代码 EINTEGRITY npm 错误! sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QnoNsuc+VsExg== 使用 sha512 时完整性校验和失败:想要 sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QnoNsuc+VsExg== 但得到了 sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==。 (5370 字节)

npm 错误!此运行的完整日志可以在以下位置找到: /home/tommaso/.npm/_logs/2024-01-24T11_41_57_389Z-debug-0.log

通过清除缓存可以轻松解决此问题:

npm cache clean --force

我终于又跑了

npm install 

一切似乎都正常!

© www.soinside.com 2019 - 2024. All rights reserved.