在Render.com部署React+Express项目时遇react-scripts未找到错误
解决Render部署时"react-scripts: not found"的问题
1. 检查依赖的安装范围
如果你的项目是前后端同仓库结构:
- 要是前端代码在子目录(比如
client),根目录的package.json里没装前端依赖的话,Render默认只在根目录执行npm install,自然找不到react-scripts。修改根目录的package.json脚本,先装前端依赖再构建:"scripts": { "install-client": "cd client && npm install", "build": "npm run install-client && cd client && npm run build", "server": "node server.js" } - 要是单
package.json的全栈项目,别把react-scripts放在devDependencies里——Render生产环境默认不安装开发依赖,直接移到dependencies下即可:"dependencies": { "react-scripts": "5.0.1", // 其他依赖... }
2. 强制Render安装所有依赖
要么在Render的Web Service配置里添加环境变量:
- 变量名
NODE_ENV,值设为development(测试通过后可改回production,前提是已将react-scripts移至dependencies)
要么直接修改Build命令,强制安装所有依赖:
npm install --production=false && npm run build
3. 核对构建上下文
确认Render的"Root Directory"设置正确,如果前端代码在子目录,这里要填写对应的路径(比如client),否则构建时找不到前端的package.json。
4. 清理缓存重新部署
在Render项目页面点击"Manual Deploy",选择"Clear build cache & deploy"——旧缓存可能残留错误的依赖状态,清空后重新构建大概率能解决问题。
5. 对齐Node版本
本地使用的Node版本和Render默认版本不一致,也会导致依赖安装异常。在项目根目录新建.nvmrc文件,写上你本地使用的版本号:
18.17.0 # 替换成你本地的Node版本
Render会自动识别这个文件,使用对应版本的Node执行构建。
内容的提问来源于stack exchange,提问作者Stas Prykhodko
相关产品推荐
相关产品推荐

