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

React应用本地正常但Netlify部署报错,求排查修复方案

解决Netlify部署SSR React应用的错误问题

先看你遇到的核心错误:Error: Cannot find module '/opt/build/repo/dev',这是因为你在Netlify的构建命令里用了npx run dev——这是个用法错误!npx是用来执行本地或远程npm包的,而运行package.json里的脚本应该用npm run dev,不过更关键的是:dev脚本是给开发环境用的,Netlify部署应该用生产环境的构建+启动流程。

下面一步步来修复:

1. 修正Netlify的构建命令

Netlify默认会找build脚本,但你的项目是服务端渲染(SSR)应用,需要调整Netlify的部署配置:

  • 进入你的Netlify站点设置 → 构建和部署 → 构建命令:把原来的npx run dev改成npm run build:prod(我们后面会在package.json里加这个脚本)
  • 发布目录:对于SSR应用,Netlify需要明确服务启动入口,更推荐用netlify.toml配置(后面会说明)。

2. 优化package.json的脚本和依赖

(1)添加生产环境构建脚本

在package.json的scripts里新增生产环境的构建与启动命令,补充现有脚本:

"scripts": {
  "dev": "npm-run-all --serial dev:build-server dev:build-client dev:server",
  "dev:server": "nodemon --watch build --exec \"node build/bundle.js\"",
  "dev:build-server": "webpack --mode production --config webpack.server.js",
  "dev:build-client": "webpack --mode production --config webpack.client.js",
  // 新增生产构建与启动脚本
  "build:prod": "npm-run-all --serial dev:build-server dev:build-client",
  "start:prod": "node build/bundle.js"
}

build:prod用来完成服务端和客户端的生产构建,start:prod用来启动生产环境的服务。

(2)处理依赖漏洞

你看到的1156个漏洞需要逐步处理:

  • 先运行npm audit fix自动修复可修复的漏洞
  • 对于无法自动修复的旧版包,比如axios(0.16.2)、babel系列(6.x版本),可以逐步升级:
    • 升级axios到最新稳定版:npm install axios@latest
    • 升级babel到7.x版本(注意同步调整babel配置,比如把.babelrc里的es2015 preset替换为@babel/preset-env,同时安装对应的@babel/core、@babel/preset-react等包)
    • 旧版的nodemon、npm-run-all等工具包也建议升级到最新版,降低安全风险

(3)修正依赖分类

你的package.json里把react放在了devDependencies里,这是错误的!react是生产环境必须的依赖,应该移到dependencies中:

"dependencies": {
  // 加入react依赖
  "react": "^16.13.1",
  // 其他现有依赖...
},
"devDependencies": {
  // 移除react
  "isomorphic-style-loader": "^5.1.0",
  "webpack-cli": "^3.3.11"
}

3. 配置Netlify的SSR启动

在项目根目录创建netlify.toml文件,明确构建和服务启动规则:

[build]
  command = "npm run build:prod"
  publish = "build"

[[redirects]]
  from = "/*"
  to = "/bundle.js"
  status = 200

这个配置会告诉Netlify执行生产构建,并将请求导向服务端bundle。

4. 本地验证生产流程

先在本地测试生产构建和启动,确保没问题再部署:

npm run build:prod
npm run start:prod

如果本地能正常启动服务,再推送到Netlify,就能提前规避大部分部署问题。

总结一下,最紧急的是修正Netlify的构建命令,把npx run dev改成npm run build:prod,再同步调整脚本和依赖,确保生产环境能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:37:50