M2 Mac上Next.js官方开发指南无法运行的问题求助
问题诊断与解决方案
核心问题分析
你遇到的bench-nested-deps#dev和bench-nested-deps-app-router#dev启动失败,本质是Next.js仓库默认的pnpm dev命令会尝试运行所有工作区项目(包括基准测试用例),而这些基准测试项目的依赖或配置在M2 Mac的arm64架构下存在兼容性问题,且普通开发场景完全不需要运行这些测试项目。
另外next info命令找不到,是因为你没有通过工作区执行命令——Next.js仓库是monorepo结构,全局安装的next和仓库内部版本不匹配,且仓库内的next是工作区依赖,不能直接全局调用。
针对性解决方案
1. 仅运行核心Next.js开发服务
普通开发只需启动Next.js核心包的开发服务,无需执行所有工作区任务,执行以下命令替代pnpm dev:
pnpm dev --filter next
这个命令会只针对next包启动开发流程,跳过基准测试项目,避免无关的错误。
2. 解决架构兼容性问题(如果仍有报错)
M2 Mac的arm64架构可能导致部分依赖编译失败,可尝试以下操作:
- 确保所有依赖都是arm64兼容版本:删除
node_modules和pnpm-lock.yaml,重新执行pnpm install,并检查终端是否以arm64模式运行(可通过uname -m查看,输出arm64则为正确模式)。 - 若部分依赖无arm64版本,可通过Rosetta 2以x86_64模式运行终端:右键终端图标→「显示简介」→勾选「使用Rosetta打开」,重新打开终端后再执行安装和启动命令。
3. 正确执行next info命令
在Next.js monorepo中,必须通过工作区命令执行next info:
pnpm next info
这样会调用仓库内部的next版本,而非全局安装的版本,避免命令找不到或版本不匹配的问题。
4. 确认依赖版本匹配
检查仓库根目录的package.json中turborepo和pnpm的指定版本,确保本地安装的pnpm版本符合要求(可通过pnpm --version查看),若版本不匹配,执行:
pnpm add -g pnpm@<仓库指定版本>
内容的提问来源于stack exchange,提问作者wirelessben
相关产品推荐
相关产品推荐

