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

本地Live Server运行React自定义导航栏遇Uncaught SyntaxError错误求助

解决React中"Uncaught SyntaxError: Unexpected token '<'"错误

核心问题

浏览器原生不识别JSX语法,你直接用Live Server加载包含JSX的main.js时,浏览器会把JSX里的<判定为非法语法,从而触发报错。

具体解决办法

1. 配置Babel转译(生产/规范开发必用)

React 17需要通过Babel将JSX转译为浏览器能解析的普通JavaScript,步骤如下:

  • 安装依赖:
    npm install @babel/core @babel/preset-react @babel/cli --save-dev
    
  • 在项目根目录新建.babelrc文件,写入配置:
    {
      "presets": ["@babel/preset-react"]
    }
    
  • 在package.json的scripts中添加转译命令:
    "scripts": {
      "build": "babel src --out-dir dist"
    }
    
  • 执行npm run build生成转译后的文件,之后在index.html中引入dist/main.js,而非原文件。

2. 快速测试方案(仅临时使用)

如果只是想快速验证效果,可跳过本地Babel配置,通过CDN实现转译:

  • 将main.js重命名为main.jsx
  • 在index.html中调整脚本引入,添加Babel CDN并指定脚本类型:
    <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <script type="text/babel" src="./main.jsx"></script>
    

注意:该方式仅适合开发测试,生产环境禁止使用,存在性能与安全隐患。

3. 检查JSX语法合法性

确认你的JSX代码没有基础语法错误:

  • 所有标签必须闭合,例如<Navbar>需写成<Navbar></Navbar>或<Navbar/>
  • 组件的根元素只能有一个,并列标签需用<div>或<React.Fragment>包裹
  • 嵌入变量或表达式必须用{}包裹,不能直接写入标签内容

4. 重新核对文件路径

再次确认index.html中脚本的引入路径与实际文件位置匹配,例如main.js在src文件夹下时,路径需写为src/main.js,而非仅写main.js。

验证方法

修改完成后重启Live Server,打开浏览器控制台查看报错是否消失,同时检查网络面板确认脚本是否正确加载,且加载内容为转译后的纯JavaScript代码。

内容的提问来源于stack exchange,提问作者Javi Úbeda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:15:49