Next.js项目执行npm run dev报错:sh: next: command not found
解决MacOS上运行Next.js项目时
next: command not found报错 问题场景
将Windows开发的Next.js代码仓库克隆到MacOS后,执行npm i成功生成node_modules,但运行npm run dev时报错:
rakibulb@Rakibuls-MacBook-Air advanced-todolist % npm run dev > todo-enhanced@0.1.0 dev > next dev sh: next: command not found
已尝试操作:
- 删除重装
node_modules - 更新npm及Node版本
项目package.json配置如下:
{ "name": "todo-enhanced", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "@hookform/resolvers": "^3.3.4", "@next-auth/prisma-adapter": "^1.0.7", "@prisma/client": "^5.13.0", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-select": "^2.0.0", "@radix-ui/react-slot": "^1.0.2", "@vercel/postgres": "^0.8.0", "bcrypt": "^5.1.1", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "lucide-react": "^0.378.0", "next": "14.2.3", "next-auth": "^4.24.7", "react": "^18", "react-dom": "^18", "react-hook-form": "^7.51.4", "react-hot-toast": "^2.4.1", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", "zod": "^3.23.8" }, "devDependencies": { "@types/bcrypt": "^5.0.2", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", "eslint-config-next": "14.2.3", "postcss": "^8", "prisma": "^5.13.0", "tailwindcss": "^3.4.1", "typescript": "^5" } }
当前终端路径与package.json处于同一层级。
解决方法
1. 用npx指定本地next命令
修改package.json中的scripts,通过npx直接调用本地node_modules中的next:
"scripts": { "dev": "npx next dev", "build": "npx next build", "start": "npx next start", "lint": "npx next lint" }
修改后重新运行npm run dev即可。
2. 配置npm本地bin路径到环境变量
MacOS下确保本地node_modules/.bin被加入PATH:
- 终端运行
echo $PATH,检查是否包含./node_modules/.bin - 若未包含,打开
~/.zshrc(或~/.bashrc,根据使用的shell)添加:export PATH="./node_modules/.bin:$PATH" - 执行
source ~/.zshrc(对应你的配置文件)使修改生效,再重新运行项目。
3. 彻底清理缓存并重装依赖
Windows和MacOS生成的package-lock.json可能存在差异,执行以下命令彻底重置依赖:
npm cache clean --force rm -rf node_modules package-lock.json npm install
4. 检查Node版本兼容性
Next.js 14.2.3要求Node.js版本为18.17+或20.6+:
- 运行
node -v查看当前版本 - 若版本不符,用nvm切换到兼容版本:
nvm install 20 nvm use 20
内容的提问来源于stack exchange,提问作者RakibulB
相关产品推荐
相关产品推荐

