Vue Debug

Vue Debug

一、工具

介绍 Vue 项目的调试工具和方法,主要包括以下三个方面:

  • Vue.js devtools开发工具的使用
  • 使用debugger和sourcemap调试Vue组件
  • vscode中调试Vue组件

二、Vue.js devtools开发工具的使用

vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率。

1、商店直接安装

在Chrome或Firefox浏览器的扩展插件仓库里搜vue devtool,安装Vue.js devtools。

最简便的方法是用FQ来通过google应用商店进行安装,但是大多数人还是处在非FQ的状态,所以我们介绍下面的办法。

2、手动安装

第一步:找到 vue-devtools 的github项目,并将其clone到本地。

git clone https://github.com/vuejs/vue-devtools.git

第二步:进入下载的项目根文件夹,安装项目所需要的npm包。

npm install //如果太慢的话,可以安装一个cnpm, 然后命令换成 cnpm install

第三步:编译项目文件,生产 vue-devtools 插件安装文件。

npm run build

第四步:添加至chrome游览器
添加方法:在chrome浏览器输入地址:“chrome://extensions/”进入扩展程序页面,然后点击“加载已解压的扩展程序…”按钮;选择vue-devtools>shells目录下的Chrome文件夹;还需允许文件地址是否访问。如果看不到“加载已解压的扩展程序…”按钮,先勾选“开发者模式”。如下图:

3、下载 crx 安装

一个超级方便的下载vue-devtools插件的地址吧,再不用这么麻烦,下载拖拽到谷歌浏览器就行了。

到收藏猫插件下载插件
https://chrome.pictureknow.com/extension?id=d50143a5f53d406dbe992277bfc90521

安装插件
在扩展中心打开右上角的【开发者模式】按钮,然后【刷新】页面,把下载好的 .crx 文件拖入扩展中心

4、注意

Vue.js is detected on this page.
Devtools inspection is not available because it’s in production mode or explicitly disabled by the author.

如果使用过程中出现了如上的提示,解决方案如下:

  • 1、引入vue.min.js是不行的,引入vue.js才能使用vue-devtools。
  • 2、在chrome的扩展程序页面,需要勾选vue-devtools的“允许访问文件地址”项。
  • 3、如果你是在chrome商店里安装的vue-devtools,那么需要到这个扩展的安装路径下找到manifest.json文件,把其中的”persistent”: false,需改为:true。
  • 4、在你的入口JS文件里加上一行。Vue.config.devtools = true

5、使用

打开vue应用,打开调试,点击vue扩展图标,就可以使用了。

三、debugger & sourcemap

针对 vue-cli webpack 官方脚手架,打开 vue.config.js 文件,添加 devtool 配置

configureWebpack: {
    devtool: 'source-map', // debug
    ...
  },

现在是具体调试了。假设我们想调试App.vue这个组件,可以在想要调试的代码前添加debugger方法,如下图所示:

然后运行 npm run dev,启动服务后刷新页面(刷新前先把浏览器开发者工具打开),可以看到程序运行到 debugger 处就被debug了,如下:

四、vscode中调试Vue组件

1、安装插件

须安装好 Chrome 和 VS Code。同时请确保自己在 VS Code 中安装了 Debugger for Chrome 扩展的最新版本。
debug-04.png

2、运行和调试配置

vscode 中点击 运行和调试 按钮,在打开的界面中点击 创建launch.json文件 ,选择对应的环境创建调试配置文件。

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "pwa-chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://localhost:8080",
            "webRoot": "${workspaceFolder}"
        }
    ]
}

3、设置断点

在项目代码中设置断点。

4、启动应用

通过命令启动系统应用。

5、启动调试

点击 运行和调试 按钮,启动调试。

调试界面包括变量、监视、调用堆栈、断点、代码界面等。

6、使用说明


通常如果出现了不是很明显的异常,比如上图中,

[Vue warn]: data functions should return an object:
https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function
(found in <Root>)
node_modules/vue/dist/vue.runtime.esm.js:619

从这段异常提示中,看不出任何我们自己编写的代码,那怎么办呢,很简单,我们只要 点击上图中报错的位置(vue.runtime.esm.js:619),打开异常代码,并打上断点。

然后重新启动调试模式并运行程序,在端点出我们可以看到更加详细的 异常对象 vm 在 vm 对象中我们可以看到更加详细的异常。

stack:'TypeError: Cannot read properties of undefined (reading 'concat')\n    
at Store.SET_ROUTES (

发现 Store.SET_ROUTES 即为我们自己的代码,精准的定位到了问题。

评论

暂无

添加新评论