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

ReactJS生产环境部署报错:SyntaxError: Unexpected token {

生产环境运行ReactJS项目报错问题

这是我首次尝试在生产环境运行ReactJS项目,可能遗漏了某些细节。

在服务器上,npm start运行完全正常。我想要切换到生产环境模式,于是执行了以下命令:

npm install -g serve
npm run build # 成功创建/build文件夹
serve -s build

现在出现如下报错:

/usr/local/lib/node_modules/serve/build/main.js:4
import { cwd as getPwd, exit, env as env2, stdout } from "node:process";
       ^

SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

我遗漏了什么?

已尝试的操作

  • 我的NodeJS服务器运行在3001端口,因此我尝试执行serve -s build -l 3001,但仍出现相同报错
  • 有人建议不要全局安装serve,而是执行npm -S serve,但无效
  • 执行npx serve {...}同样无效(仅输出Unexpected token {)

解决方案

这个报错的核心原因是服务器上的Node.js版本过低,不支持serve最新版本使用的ES模块语法(比如import和node:process这种前缀导入)。

方法一:升级Node.js版本

  1. 先查看当前Node.js版本:
node -v
  1. 将Node.js升级到16.x及以上版本(serve最新版要求最低Node.js 16):
    • 若用nvm管理版本:
      nvm install 16
      nvm use 16
      
    • 若为系统自带Node.js,通过对应包管理器更新(如Ubuntu用apt,CentOS用yum)。
  2. 重新全局安装serve:
npm install -g serve
  1. 再次运行serve -s build即可正常启动服务。

方法二:安装兼容低版本Node.js的serve旧版

如果暂时无法升级Node.js,可安装serve v14.x版本(该版本兼容更低的Node.js):

npm install -g serve@14

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:22:37