Vue用了很久了,大部分时候看下报错信息,结合Vue.js devtools查看下各个组件的数据其实就可以了,但是有时候还是有必要使用debugger的。
主要讲三个东西:
Vue.js devtools开发工具的使用
使用debugger和sourcemap调试Vue组件
vscode中调试Vue组件
Vue.js devtools开发工具的使用
在Chrome或Firefox浏览器的扩展插件仓库里搜vue devtool,安装Vue.js devtools.
-
打开vue项目,在控制台选择vue
-
可操作组件查看信息变化
使用debugger和sourcemap调试Vue组件
针对vue-cli webpack官方脚手架,打开build/webpack.dev.conf.js文件,找到下面这句:
devtool: '#cheap-module-eval-source-map',
将其修改为:
devtool: '#eval-source-map ',
要修改的地方已经都改好了,就是这么简单,惊不惊喜,意不意外。
现在是具体调试了。假设我们想调试App.vue这个组件,可以在想要调试的代码前添加debugger方法,如下图所示:
然后运行npm run dev,启动服务后刷新页面(刷新前先把浏览器开发者工具打开),可以看到在程序进入App.vue组件mounted这个组件生命周期钩子里后,指定到debugger处时程序就被debug了。如下图所示,剩下的大家应该都很熟悉了。可以看到,此处显示的代码就是我们组件里的实际代码,并非被我们编译混淆后的那种代码,可读性非常好。
vscode中调试Vue组件
先决条件
你必须安装好 Chrome 和 VS Code。同时请确保自己在 VS Code 中安装了 Debugger for Chrome 扩展的最新版本。
请通过 Vue CLI,遵循它的 README 中的安装文档安装并创建一个项目。然后进入这个新创建的应用的目录,打开 VS Code。
从 VS Code 启动应用
- 点击在 Activity Bar 里的 Debugger 图标来到 Debug 视图,然后点击那个齿轮图标来配置一个 launch.json 的文件,选择 Chrome 环境。然后将生成的 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}/*"
}
}
]
}
设置一个断点
-
在 src/components/HelloWorld.vue 的 line90 的地方设置一个断点,这里的 data 函数返回一个字符串。
在根目录打开你惯用的终端并使用 Vue CLI 开启这个应用:
npm start
来到 Debug 视图,选择 ‘vuejs: chrome’ 配置,然后按 F5 或点击那个绿色的 play 按钮。
随着一个新的 Chrome 实例打开 http://localhost:8080,你的断点现在应该被命中了。