create-react-app开发模式下控制台错误为何链接到压缩代码块
问题描述
在development模式下运行create-react-app时,控制台抛出的错误跳转链接指向压缩后的代码块,CRA默认支持的source map源文件映射失效,错误表现如下:
解决方案
按以下优先级从高到低排查修复即可:
- 检查开发环境变量配置
打开项目根目录下的.env、.env.development文件,查找是否存在GENERATE_SOURCEMAP=false配置。development模式下该配置被设为false时会直接跳过source map生成,错误栈只会指向编译后的压缩bundle。删除该配置或显式设置为GENERATE_SOURCEMAP=true,重启服务即可恢复。 - 校验启动脚本配置
打开package.json查看scripts字段下的start命令,CRA默认启动命令为react-scripts start。如果命令中被手动添加了NODE_ENV=production类修改运行环境的参数,会导致dev server按生产模式逻辑运行,不生成开发态source map,改回默认启动命令后重启服务即可。 - 清理损坏的依赖缓存
依赖安装异常、node_modules缓存损坏时,也可能导致react-scripts内置的source map生成逻辑失效,执行以下命令清理重装依赖即可:rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml npm install npm start - 检查浏览器开发者工具设置
打开浏览器DevTools的设置面板,确认「Enable JavaScript source maps」选项处于开启状态,该开关被关闭时,即使本地正常生成了source map,浏览器也不会做源码映射。 - 排查自定义webpack配置改动
如果使用了craco、react-app-rewired等工具自定义CRA的webpack配置,检查是否手动修改了devtool字段。开发态下CRA默认的devtool值为eval-cheap-module-source-map,如果被改为none、false等不支持源码映射的取值,将配置恢复为默认值即可。
内容的提问来源于stack exchange,提问作者dpren
相关产品推荐
相关产品推荐

