前端vscode 调试技巧以vue-cli3.0为例

1,880 阅读1分钟

调试前端项目

vue.config.js

module.exports = {
    configureWebpack:{
        devtool: 'source-map'
    }
}

tsconfig.json

"compilerOptions":{
    "outDir": "./dist"
}

为什么要配置tsconfig.json? 如果不配置,则.ts文件转化的.js文件以及.map文件就默认生成在src文件夹下

lanuch

{
    "type": "chrome",
    "request": "launch",
    "name": "Launch Chrome against localhost",
    "url": "http://localhost:8080",
    "webRoot": "${workspaceFolder}",
    "sourceMaps": true,
    "sourceMapPathOverrides": {
        "webpack:///*": "${webRoot}/*",
        "webpack:///./*": "${webRoot}/*",
        "webpack:///src/*": "${webRoot}/src/*"
      }
}

需要注意的是sourceMaps 和sourceMapPathOverrides并不是必需的

attach

调试node.js项目

如果想调试npm run ...的构建过程,需要vscode单步调试构建的过程 如下官方参考 https://code.visualstudio.com/docs/nodejs/nodejs-debugging 给出的样例 在pacakge.json中

 "scripts": {
    "debug": "node --nolazy --inspect-brk=9229 myProgram.js"
  }

在launch中

{
  "name": "Launch via npm",
  "type": "node",
  "request": "launch",
  "cwd": "${workspaceFolder}",
  "runtimeExecutable": "npm",
  "runtimeArgs": ["run-script", "debug"],
  "port": 9229
}

需要注意的是,往往我们的项目中选用的是node_modules/.bin文件下的文件启动 比如 package.json中

"serve": "vue-cli-service serve --open",

vue-cli-service是node_modules/.bin下的一个本地依赖包。 按照官方参考改造如下 package.json中

"serve-debug": "node --nolazy --inspect-brk=9229 ./node_modules/.bin/vue-cli-service serve --open "

vue-cli-service === node ./node_modules/.bin/vue-cli-service

在浏览器调试

调试electron

调试typescript