在Azure Web App启动Next.js独立部署包时遇“next: not found”错误
解决Next.js Standalone部署到Azure Web App时
next: not found的问题 问题原因
使用standalone模式编译后,Next.js会将所有运行依赖打包到.next/standalone文件夹,但该模式不包含全局的next CLI工具。如果你的package.json里start脚本是next start,部署后执行npm start自然会找不到next命令。
解决方案
1. 直接修改启动命令
跳过next CLI,直接运行standalone目录下生成的server.js文件:
node .next/standalone/server.js
2. 调整本地项目的启动脚本
在本地项目的package.json中修改start脚本,确保部署后能直接启动服务:
{ "scripts": { "build": "next build", "start": "node .next/standalone/server.js" } }
重新编译后,需要将.next/standalone、.next/static以及项目根目录的public文件夹一同部署到Azure Web App的/home/site/wwwroot目录——静态资源和public文件夹必须和standalone同级放置,否则页面会丢失样式与静态文件。
3. 在Azure Portal配置启动命令
若不想修改本地脚本,可直接在Azure Web App的后台设置启动命令:
- 进入Web App的「配置」>「常规设置」
- 在「启动命令」中填入:
node /home/site/wwwroot/.next/standalone/server.js
额外注意事项
- 务必同步
.next/static和public文件夹到部署目录,否则静态资源无法加载。 - 确保Azure Web App的Node.js版本与本地开发环境版本一致,避免出现兼容性问题。
内容的提问来源于stack exchange,提问作者robr
相关产品推荐
相关产品推荐

