问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在VS Code中调试Vue.js应用程序

创作时间:
作者:
@小白创作中心

在VS Code中调试Vue.js应用程序

引用
1
来源
1.
https://v2.cn.vuejs.org/v2/cookbook/debugging-in-vscode.html

在开发Vue.js应用程序时,调试是一个必不可少的环节。本文将详细介绍如何在VS Code中调试Vue.js应用程序,包括配置源代码映射、启动应用、设置断点等具体步骤。

每个应用,不论大小,都需要理解程序是如何运行失败的。在本案例中,我们会探索一些VS Code用户在浏览器中调试应用的工作流程。

这个案例展示了如何在VS Code中调试浏览器中运行的通过Vue CLI生成的Vue.js应用程序。

注意:这个案例覆盖了Chrome和Firefox。如果你知道如何在其他浏览器中进行VS Code调试,欢迎分享你的观点(请看页面底部)。

先决条件

请确保你安装了VS Code以及适合的浏览器,并且安装激活了最新版的相应的Debugger扩展:

  • Debugger for Chrome
  • Debugger for Firefox

请通过Vue CLI,遵循它的Vue CLI教程并创建一个项目。然后进入这个新创建的应用的目录,打开VS Code。

在浏览器中展示源代码

在可以从VS Code调试你的Vue组件之前,你需要更新webpack配置以构建source map。做了这件事之后,我们的调试器就有机会将一个被压缩的文件中的代码对应回其源文件相应的位置。这会确保你可以在一个应用中调试,即便你的资源已经被webpack优化过了也没关系。

打开config/index.js并找到devtoolproperty。将其更新为:

如果你使用的是Vue CLI 2,请设置并更新config/index.js内的devtoolproperty:

devtool: 'source-map',

如果你使用的是Vue CLI 3,请设置并更新vue.config.js内的devtoolproperty:

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

从VS Code启动应用

我们这里假设端口号为8080。如果与实际情况不符(比如8080端口已经被占用且Vue CLI为你自动选取了另一个端口号),可以修改相应的配置。

点击在Activity Bar里的Debugger图标来到Debug视图,然后点击那个齿轮图标来配置一个launch.json的文件,选择Chrome/Firefox:Launch环境。然后将生成的launch.json的内容替换成为相应的配置:

{
  "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}/*"
      }
    },
    {
      "type": "firefox",
      "request": "launch",
      "name": "vuejs: firefox",
      "url": "http://localhost:8080",
      "webRoot": "${workspaceFolder}/src",
      "pathMappings": [
        {
          "url": "webpack:///src/",
          "path": "${webRoot}/"
        }
      ]
    }
  ]
}

设置一个断点

  1. src/components/HelloWorld.vue的line90的地方设置一个断点,这里的data函数返回一个字符串。

  1. 在根目录打开你惯用的终端并使用Vue CLI开启这个应用:
npm run serve
  1. 来到Debug视图,选择“vuejs:chrome/firefox”配置,然后按F5或点击那个绿色的play按钮。

  2. 随着一个新的浏览器实例打开http://localhost:8080,你的断点现在应该被命中了。

替代方案

Vue Devtools

我们还有一些其他的调试方法,复杂度不尽相同。其中最流行和简单的是使用非常棒的Chrome版本和Firefox版本的Vue.js devtools。使用devtools有很多好处,比如它可以让你能够实时编辑数据property并立即看到其反映出来的变化。另一个主要的好处是能够为Vuex提供时间旅行式的调试体验。

请留意如果页面使用了一个生产环境/压缩后的Vue.js构建版本(例如来自一个CDN的标准的链接),devtools的审查功能是默认被禁用的,所以Vue面板不会出现。如果你切换到一个非压缩版本,你可能需要强制刷新该页面来看到它。

简单的debugger语句

上述示例的工作流程非常好。不过这里还有一个替代选项,就是你可以直接在代码中使用。如果你选择了这种方式,请千万记得当你调试完毕之后把这个语句移除。

<script>
export default {
  data() {
    return {
      message: ''
    }
  },
  mounted() {
    const hello = 'Hello World!'
    debugger
    this.message = hello
  }
}
</script>

致谢

这个案例是基于Kenneth Auchenberg贡献在这里的文章而撰写的。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号