我最近转到Vuejs3,调试设置停止工作。断点不会被触发。我使用的配置文件和以前一样,不确定这个版本是否有什么变化。
- Chrome扩展版调试器:v4.12.12
- VsCode:1.56.2
- Vue CLI v3
- 平台:Ubuntu 20.04.2 LTS
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "vuejs: pwa-chrome",
"type": "pwa-chrome",
"request": "launch",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/src",
"sourceMapPathOverrides": {
"webpack:///src/*": "${webRoot}/*"
}
},
{
"name": "vuejs: chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/src",
"breakOnLoad": true,
"sourceMapPathOverrides": {
"webpack:///src/*": "${webRoot}/*"
}
}
]
}
vue.config.js
module.exports = {
configureWebpack: {
devtool: 'source-map'
}
}
我不得不将launch.json文件更改为以下文件。显然,pwa-prefix是针对VSCode的新JavaScript调试器的一种方法。参见stackoverflow讨论。旧的调试器不再在此平台上工作。希望这能帮助到别人。
{
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}
我也处于类似的情况,找不到相关的解决方案:
快速回答:升级到VS Code 1.56.2后,请确保删除旧断点并创建新断点,并且至少有1个断点和launch.json可用。
冗长的详细信息:
当我启动";调试器条";我在顶部调试栏上看到它几秒钟,然后它就消失了。但是控制台上没有消息,什么都没有。我尝试重新安装VS代码,启用/禁用扩展,各种重新启动。
- 操作系统和版本:Mac OSX 11.4版(20F71(
- VS代码版本:1.56.2
- 扩展:Python v2021.5.842923320 by Microsoft
根本原因:
我确实知道,我更新了我的VS代码,在那之后,这个神秘的问题开始发生,所以什么时候发布VS代码1.56.2的日志。我在下面找到了发布日志
中断#上显示的调试视图
debug.openDebug设置的默认值现在为openOnDebugBreak,这样在每次命中断点时,VS代码都会打开调试视图。调试视图也显示在第一个会话上开始
因此,VS代码版本1.56发布时,调试器只有在找到至少一个断点时才会显示。然而,在VS代码升级后,他们的内部代码检查历史断点数据似乎存在问题。。
https://code.visualstudio.com/updates/v1_56#_debug-中断时显示的视图
在sourceMapPathOverrides中添加2条路径。它对我有用。
"sourceMapPathOverrides": {
"webpack:///./src/*": "${webRoot}/*",
"webpack:///src/*": "${webRoot}/*",
}
删除sourceMapPathOverrides:后工作
// "sourceMapPathOverrides": {
// "webpack:///src/*.vue": "${webRoot}/*.vue",
// "webpack:///./src/*.js": "${webRoot}/*.js",
// }
由于每个人使用不同的vue-cl
i版本和webpack
版本,我将在这里提供一个更高效的解决方案。您可以将devServer中的writeToDisk
字段配置为true,如下所示:
webpack5:
devServer: {
devMiddleware: {
writeToDisk: true,
},
},
webpack<5:
devServer: {
writeToDisk: true
}
您还需要将源映射配置更改为devtool: 'source-map'
,而不是devtool: 'cheap-module-eval-source-map'
更快的sourceMap格式将导致更多信息丢失,使您的VS代码无法确定资源路径。
然后,在执行npm run dev
之后,项目中会有一个额外的dist
文件夹,其中包含源映射文件
源映射文件包括以下字段:
"sources": [
"webpack://mydeb/./src/App.vue?01fe",
"webpack://mydeb/./src/components/HelloWorld.vue?774b",
"webpack://mydeb/./src/App.vue?763f",
"webpack://mydeb/./src/components/HelloWorld.vue?6c98",
"webpack://mydeb/src/App.vue",
"webpack://mydeb/src/components/HelloWorld.vue",
"webpack://mydeb/./src/App.vue",
"webpack://mydeb/./src/components/HelloWorld.vue",
"webpack://mydeb/./src/main.js",
"webpack://mydeb/./src/App.vue?81d5",
]
CCD_ 8是在包中配置的名称字段I,根据这些信息,我这样配置launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}",
"sourceMapPathOverrides": {
"webpack://mydeb/src/*.vue": "${webRoot}/src/*.vue",
"webpack://mydeb/./src/*.js": "${webRoot}/src/*.js",
}
}
]
}