我对 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
最后我犯了一个典型的错误:没有正确阅读路径。 我过去安装了 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
一切似乎都正常!