带有Vue.js的VS Code中Chrome的调试器设置

Ale*_*sky 1 vue.js visual-studio-code

在.vscode \ launch.json中具有以下设置

{
    "version": "0.2.0",
    "configurations": [
      {
        "type": "chrome",
        "request": "launch",
        "name": "Launch Chrome against localhost",
        "url": "http://localhost:8080",
        "webRoot": "${workspaceFolder}"
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我可以在项目的index.js文件中设置一个断点,并且触发成功,但是* .vue文件中的断点触发不正确。

使用以下设置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "chrome",
      "request": "launch",
      "name": "vuejs: chrome",
      "url": "http://localhost:8080",
      "webRoot": "${workspaceFolder}/src",
      "breakOnLoad": true,
      "sourceMapPathOverrides": {
        "webpack:///src/*": "${webRoot}/*"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

反之亦然,*。vue文件中的断点已成功触发,但是我无法在index.js文件中设置断点。

如何使断点在* .js和* .vue中都能工作?

查看有关如何设置环境的更多详细信息。

Ste*_*eve 5

我很惊讶,但是添加两个版本的源地图覆盖对我来说很有效。现在,我可以在.vue文件,.js文件和导入的es6模块中的断点处进行设置并使其停止。我只花了大约一个月的时间就找到了解决方案!

希望它对您有用(这对我不再有用。请参见下文)

      "sourceMapPathOverrides": {
          "webpack:///./src/*": "${webRoot}/*",
          "webpack:///src/*": "${webRoot}/*"
      }
Run Code Online (Sandbox Code Playgroud)

2019年10月更新:

在最近的更新中,调试js和vue文件对我来说都是无效的。我终于找到了适用于这两种情况的新设置:

      "sourceMapPathOverrides": {
         "webpack:///src/*.vue": "${webRoot}/*.vue",
         "webpack:///./src/*.js": "${webRoot}/*.js"
      }
Run Code Online (Sandbox Code Playgroud)

  • 从vscode调试控制台检查.scripts的输出时,似乎经常有同一脚本的两个实例,有些实例使用webpack:///..src/,有些实例使用webpack:/// src /。我想知道这是否与在核心使用严格的字符串匹配算法对核心的路径进行不一致的处理有关。因此,我试了一下,就奏效了。似乎可以工作。检查.scripts非常有用,因为我随后想出了如何在工作空间中单独的根文件夹中的文件中放置断点。例如“ webpack:///../library/js/*”:“ $ {webRoot} /../../ library / js / *” (3认同)