部署React Node.js应用到DigitalOcean时报missing script: build错误如何解决
问题排查与解决方案
你提供的package.json scripts 配置本身没有语法错误,触发该报错通常有以下几类原因:
"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }
执行命令的工作目录不匹配
确认部署时执行npm run build的工作路径,是否和package.json所在的目录一致。如果你的React项目放在项目子目录(例如./client),部署脚本默认在根目录执行时会找不到对应脚本,需要修改部署配置的工作目录到React项目所在路径,或者调整package.json的存放位置。服务器上的
package.json不是最新版本
检查DigitalOcean的部署文件同步规则,是否存在过滤package.json、或者仅同步部分目录的配置,导致服务器上拉取的文件是未包含build脚本的旧版本。你可以直接登录DigitalOcean实例,查看目标路径下的package.json内容,确认是否和本地版本完全一致。package.json全局存在语法错误
你贴出的scripts片段没有问题,但需要检查完整package.json是否存在引号未闭合、逗号缺失、特殊字符污染等全局语法问题,可通过JSON格式校验工具验证文件合法性。npm版本兼容或缓存异常
服务器上安装的npm版本如果和本地开发环境差异过大,可能存在脚本识别的兼容问题,你可以在部署脚本中加入以下步骤清理缓存、重新安装依赖后再执行构建:
npm cache clean --force rm -rf node_modules package-lock.json npm install npm run build
- 部署平台配置错误
如果使用DigitalOcean App Platform部署,检查App Spec中的build_command和root_directory配置,确认没有错误指定其他路径,或者配置了错误的脚本执行规则。
内容的提问来源于stack exchange,提问作者Derek Lofton
相关产品推荐
相关产品推荐

