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

React生产构建报错:Uncaught SyntaxError: Unexpected token 'export'

问题:生产构建后出现Uncaught SyntaxError: Unexpected token 'export'

我是React新手,刚学几天。之前项目本地运行完全正常,但部署到生产环境后,构建文件抛出错误:Uncaught SyntaxError: Unexpected token 'export'。构建文件最后一行出现了export语句,我不知道它的来源。这个问题是在引入react-cropper和react-color包之后出现的,移除react-color后问题就解决了。

vite.config.js

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
})

package.json

{
  "name": "myaccount-page",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },
  "dependencies": {
    "axios": "^1.7.2",
    "bootstrap": "^4.6.2",
    "bootstrap-icons": "^1.11.3",
    "cropperjs": "^1.6.2",
    "react": "^18.3.1",
    "react-bootstrap": "^2.10.4",
    "react-color": "^2.19.3",
    "react-cropper": "^2.3.3",
    "react-dom": "^18.3.1",
    "react-easy-crop": "^5.0.8",
    "react-toastify": "^10.0.5"
  },
  "devDependencies": {
    "@types/react": "^18.3.3",
    "@types/react-dom": "^18.3.0",
    "@vitejs/plugin-react": "^4.3.1",
    "eslint": "^8.57.0",
    "eslint-plugin-react": "^7.34.3",
    "eslint-plugin-react-hooks": "^4.6.2",
    "eslint-plugin-react-refresh": "^0.4.7",
    "vite": "^5.3.4"
  }
}

构建文件报错行

("root")).render(p.jsx(v.StrictMode,{children:p.jsx(EI,{})}))});export default CI();

解决方法

原因分析

react-color@2.19.3是一个多年未维护的旧包,它的代码使用了未被正确转译的ES模块语法。Vite默认不会转译node_modules中的依赖包,导致生产构建时直接将未处理的export语句打包进产物,而浏览器无法识别顶级的export语法,从而抛出错误。

解决方案

方案1:替换为维护活跃的替代包

推荐使用react-colorful替代react-color,它体积更小、支持现代构建工具,且维护状态良好。执行以下命令替换:

npm uninstall react-color
npm install react-colorful

之后修改项目中引入react-color的代码,适配react-colorful的API即可。

方案2:强制Vite转译react-color

如果一定要继续使用react-color,可以修改vite.config.js,强制Vite对该包进行转译处理:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  optimizeDeps: {
    include: ['react-color'] // 强制预构建react-color
  },
  build: {
    commonjsOptions: {
      include: [/react-color/, /node_modules/] // 强制转译react-color为兼容格式
    }
  }
})

修改后重新执行npm run build,部署新的构建产物即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:55:57