React应用启动报错求助:Uncaught SyntaxError及模块解析失败
React应用构建两类错误的解决方法
一、模块解析错误:无法解析'./App'和'./reportWebVitals'
报错原因
你在package.json中添加了"type": "module",启用了严格ES模块模式,这种模式下必须显式指定文件扩展名,不能省略.js。
解决方法
打开src/index.js,修改导入语句,补上文件扩展名:
// 修改前 import App from './App'; import reportWebVitals from './reportWebVitals'; // 修改后 import App from './App.js'; import reportWebVitals from './reportWebVitals.js';
二、Uncaught SyntaxError: Unexpected token '<'
报错原因
这个错误通常是Node尝试解析HTML文件作为JS模块导致的,结合你的操作,大概率是手动添加的"type": "module"与Create React App(CRA)的默认配置冲突,或者文件扩展名修改后导入路径未同步。
解决方法
方案1:移除package.json中的"type": "module"(推荐)
CRA本身已经配置好了模块解析规则,不需要手动开启严格ES模块模式。直接删除package.json里的"type": "module",同时把app.mjs改回app.js,这样既不用加扩展名,也能避免配置冲突。
方案2:同步扩展名(如果坚持用.mjs)
如果一定要保留"type": "module"和.mjs后缀,确保index.js的导入路径同步更新:
import App from './App.mjs';
同时确认开发服务器能正确识别.mjs文件。
方案3:检查请求返回内容
如果以上操作无效,打开浏览器开发者工具的Network面板,查看请求的JS文件返回的是不是HTML(比如404页面)。如果是,检查文件路径是否正确,或者开发服务器是否启动在正确的前端目录下。
内容的提问来源于stack exchange,提问作者AZ689
相关产品推荐
相关产品推荐

