You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署至Render时npm start失败(本地正常):找不到package.json

问题:本地运行npm start正常,Render平台部署启动失败报ENOENT错误

错误日志

Jul 22 07:02:54 PM  npm ERR! code ENOENT
Jul 22 07:02:54 PM  npm ERR! syscall open
Jul 22 07:02:54 PM  npm ERR! path /opt/render/project/src/package.json
Jul 22 07:02:54 PM  npm ERR! errno -2
Jul 22 07:02:54 PM  npm ERR! enoent ENOENT: no such file or directory, open '/opt/render/project/src/package.json'
Jul 22 07:02:54 PM  npm ERR! enoent This is related to npm not being able to find a file.
Jul 22 07:02:54 PM  npm ERR! enoent

项目package.json脚本配置

"scripts": {
  "install-server" : "cd server && npm install",
  "start-server": "cd server && node app.js",
  "start": "react-scripts start",
  "build": "react-scripts build",
  "test": "react-scripts test",
  "eject": "react-scripts eject"
}

Render平台当前配置

  • 构建命令:npm build
  • 启动命令:npm start

解决步骤

1. 确认package.json的位置

Render默认在/opt/render/project/src目录下寻找package.json,检查Git仓库是否已提交根目录的package.json,且未被.gitignore忽略。如果package.json在子目录,需在Render项目设置中修改「Root Directory」指定正确路径。

2. 修正构建命令

npm build是npm内置命令,与你脚本中定义的build逻辑无关,需改为**npm run build**以执行React的构建脚本。若为前后端分离项目,需先安装后端依赖,构建命令可调整为:

npm install && npm run install-server && npm run build

3. 调整启动命令适配生产环境

npm start执行的react-scripts start是开发环境热重载服务器,不适合生产环境使用:

  • 纯前端React应用:先安装serve依赖(npm install serve --save),将启动命令改为**serve -s build**,用于托管构建后的静态文件。
  • 需要启动后端服务:将启动命令改为**npm run start-server**,执行后端启动脚本。

4. 检查目录路径一致性

若项目根目录有package.json、server目录为后端代码,确保Render工作目录设为项目根目录,保证脚本中cd server能正确找到后端的package.json。


内容的提问来源于stack exchange,提问作者ShiivShakti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:08:13