React应用在DigitalOcean部署时卡在Starting the Development Server求助
问题根因
- 你配置在构建阶段的
npm start对应package.json里的craco start,这是本地开发热重载服务器的启动命令,属于长期运行的常驻进程,执行后不会主动退出,因此构建流程会一直卡在该步骤等待进程结束。 - 静态React应用的构建阶段仅需完成代码编译、生成生产环境静态资源即可,不需要启动服务。
- 你错误地将运行阶段的逻辑配置到了构建阶段,二者在部署流程中是完全独立的两个步骤。
修复方案
根据你的部署场景二选一即可:
场景1:部署纯静态React站点(绝大多数普通React应用的场景)
- 进入DigitalOcean应用的控制台配置页,修改构建命令,仅保留
npm run build,删除末尾的npm start - 配置构建输出目录为
build,DigitalOcean会自动托管该目录下的静态资源,无需额外配置运行命令。
场景2:需要启动Node服务运行应用(如SSR、同构应用场景,你当前的配置默认不需要该方案)
- 构建命令仅保留
npm run build - 将
npm start移至运行命令配置栏,不要放在构建阶段 - 注意你当前的
start命令是开发服务器启动命令,不能用于生产环境,需要先将生产环境服务依赖添加到项目中:- 执行
npm install serve安装静态资源服务工具 - 修改
package.json的scripts配置,新增生产启动命令:"serve": "serve -s build" - 将运行命令替换为
npm run serve
- 执行
本地启动正常是因为本地开发流程本身就需要启动开发热重载服务器,和线上部署的流程逻辑完全不同,不能直接套用本地操作步骤。
内容的提问来源于stack exchange,提问作者Kendrick Lamar
相关产品推荐
相关产品推荐

