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

使用Vite + React执行sudo npm run build构建生产环境失败求助

Vite + React生产构建报错:SyntaxError: Unexpected token {

问题场景

部署Vite + React项目时,执行sudo npm run build命令出现语法错误,具体报错信息如下:

/var/www/html/dev-sp-doc/node_modules/vite/bin/vite.js:2
import { performance } from 'node:perf_hooks'
       ^

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)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sp-doc@0.0.0 build: `tsc && vite build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sp-doc@0.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

当前环境:Node v19.5.0,Vite ^3.2.5

问题原因

sudo会切换到root环境,使用系统默认的旧版Node,而非你当前用户安装的v19.5.0。旧版本Node不支持node:perf_hooks这种ES模块导入语法,导致出现语法错误。

解决方案

方案1:避免使用sudo执行构建

如果是目录权限问题导致需要sudo,先调整项目目录权限为当前用户所有:

sudo chown -R $USER:$USER /var/www/html/dev-sp-doc

之后直接执行构建命令:

npm run build

方案2:sudo下指定Node完整路径

先查看当前用户Node的安装路径:

which node

假设输出为/usr/local/bin/node,则用sudo指定该路径执行构建:

sudo /usr/local/bin/node /usr/local/bin/npm run build

方案3:统一系统Node版本

使用nvm等版本管理工具,将root用户和普通用户的Node版本统一升级到v19.5.0及以上,确保sudo环境下也使用兼容的Node版本。

内容的提问来源于stack exchange,提问作者louis yoong 0729

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:30:59