VSCode调试React项目时断点不生效怎么办?
我在VSCode里用Debugger for Chrome插件调试本地启动的React项目,但打的断点一直显示灰色,提示“未验证”,根本进不去。开发服务器是用npm start启的,也没改过webpack配置。
我试过加debugger语句能停住,但断点就是不行。是不是launch.json配错了?我的配置如下:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/src"
}
]
}
首先检查一下你的
package.json里start脚本对应的webpack配置或者react-scripts版本。新版create-react-app默认用的source map类型可能不太对VSCode的胃口。在项目根目录下创建或修改
.env文件,添加一行:如果还不行,试试更新launch.json,在配置里加上这些字段:
记得把build路径改成你实际的输出目录。要是还没效果,就把chrome缓存清空再试,有时候浏览器太聪明反而帮倒忙。
折腾前端工具链真挺累人的,但调通了就爽了。希望这些建议能帮你解决问题。
你的配置里把webRoot设成src目录了,但React项目通常build出来的东西在public或者dist目录。试试改成"${workspaceFolder}",这样VSCode能找到源文件的映射关系。
另外别忘了在package.json的scripts里加个环境变量:
如果还不行,看看控制台有没有报source map相关的错误。有时候浏览器缓存也会捣乱,记得清下缓存。
最后提醒一下,如果你用了babel之类工具,确保.babelrc里有生成source map的配置。前端调试这种事情,细节很重要,搞不定就多试几次配置组合吧。