说到 vue 项目的调试工具,必然少不了 “vue devtools 插件”,此插件就像“手术刀”一样,是开发环境下的一个利器,生产环境一般情况没办法使用。

要在生产环境使用,就必须要一点手段。

前置条件

  1. 安装 Chrome 浏览器,本文编写时使用的 Google Chrome 133 版本。
  2. 安装 vue devtools 插件,本文编写时使用的 vue devtools 6.6.3 版本(Vue DevTools v7 不再支持 vue2 项目调试)。

Vue2 项目开启 vue devtools

以 element-ui 为例:

  1. Chrome 访问 https://element.eleme.cn/#/zh-CN

  2. 快捷键 F12 启动 开发者工具

  3. 控制台 运行以下代码:

var node;
const walker = document.createTreeWalker(document.body,1);
while ((node = walker.nextNode())) {
if (node.__vue__) {
const Vue = node.__vue__.$options._base;
if (!Vue.config.devtools) {
Vue.config.devtools = true;
if (window.__VUE_DEVTOOLS_GLOBAL_HOOK__) {
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit('init', Vue);
console.log('==> vue devtools now is enabled');
}
}
break;
}
}

正常情况,会看到如下图:

可能出现的情况

运行后不出现 Vue 页面,看不到 vue devtools。比如:

这种情况, 按两次 F12开发者工具 重启下就能解决。

Vue3 项目开启 vue devtools

以 element-plus 为例:

  1. Chrome 访问 https://cn.element-plus.org/zh-CN/component/overview.html

  2. 快捷键 F12 启动 开发者工具

  3. 控制台 运行以下代码:

var node;
const walker = document.createTreeWalker(document.body,1);
while ((node = walker.nextNode())) {
const vm = node.__vue_app__
if (vm) {
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps.push({
app: vm,
version: vm.version,
types: {
Comment: Symbol('Comment'),
Fragment: Symbol('Fragment'),
Static: Symbol('Static'),
Text: Symbol('Text'),
},
})
if (window.__VUE_DEVTOOLS_GLOBAL_HOOK__) {
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit('init', vm);
console.log('==> vue devtools now is enabled');
}
break;
}
}

正常情况,会看到如下图:

有些报错,可以忽略。

也可能会代码执行成功,不出现 Vue 页签,还是按两次 F12开发者工具 重启下就能解决。

使用 Chrome Snippets 保存代码片段

  1. 启动开发者工具

  2. 前往 Sources(源代码/来源) 面板

  3. 找到 Snippets(代码段)

  4. 新增片段 New snippet(新代码段)

  5. 输入以下代码,Ctrl + S 保存

  6. 对代码片段鼠标右键,再点击 Run(运行) 即可执行。

function init() {
var node;
var running = false
try {
const walker = document.createTreeWalker(document.body,1);
while ((node = walker.nextNode())) {
const vm = node.__vue_app__
if (vm) {
// Vue3 项目
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps.push({
app: vm,
version: vm.version,
types: {
Comment: Symbol('Comment'),
Fragment: Symbol('Fragment'),
Static: Symbol('Static'),
Text: Symbol('Text'),
},
})
if (window.__VUE_DEVTOOLS_GLOBAL_HOOK__) {
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit('init', vm);
running = true
}
break;
} else if (node.__vue__) {
// Vue2 项目
const Vue = node.__vue__.$options._base;
if (!Vue.config.devtools) {
Vue.config.devtools = true;
if (window.__VUE_DEVTOOLS_GLOBAL_HOOK__) {
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit('init', Vue);
running = true
}
}
break;
}
}
} catch(err){
console.error(err)
}
if (running) {
console.log('%c==> 已开启 vue devtools (可能需要重启 Chrome 开发者工具)', 'color: green;');
} else {
console.log('%c==> 未检测到 Vue 项目或未检测到 Vue devtools', 'color: red;')
}
}
init()

这里保存的 Snippets 代码片段,可以在所有网站运行,只要浏览器不卸载,Snippets 代码片段判断永远都在。

Vue2/Vue3 项目生产环境开启 vue devtools 插件线上调试 vue 组件的更多相关文章

  1. vite项目生产环境去掉console信息【转载】

    环境变量引入 通常去掉console为生产环境,即需要引入环境变量.具体请看这篇文章: vite项目初始化之~环境变量 注意 与webpacak相比,vite已经将这个功能内置到了,所以我们只需要配置 ...

  2. vue2.0项目的环境配置以及有哪些的坑

    npm run dev项目运行:$ git pull origin master 更新代码项目的提交代码git push -u origin master 这里就开始准备提交到网络上了 项目的地址gi ...

  3. 阿里云ESC学生服务器搭建springboot项目生产环境(Mysql+JDK)不需要上传安装包

    嗯,之前服务器被挖矿的病毒弄的登录不进去了,所以联系了阿里云客服,提交工单,最后建议重置,所以我就重置了, 嗯,学习经验,docker如果懂的不是太多,不要随便云部署,都给别人挖矿了.   Mysql ...

  4. Vue + Element 自定义上传封面组件

    前一段时间做项目,频繁使用到上传图片组件,而且只上传一个封面,于是想着自定义一个图片封面上传组件.先来看一下效果:                        第一张图片是上传之前,第二张图片是上传 ...

  5. vue ----element-ui 文件上传upload 组件 实现 及其后台

    1.前台 action 不用改 :https://jsonplaceholder.typicode.com/posts/ getFile: 获取文件 data(){ return { file: {} ...

  6. Vue3能不能用到生产环境?

    最近,有不少朋友问我:"十三,看你写了几个Vue3的项目,你觉得Vue3能用到生产环境了吗?"结合自己的想法和尤大直播说的话,给一点建议. 别问我!没结果,除非花手摇过我. 我不是 ...

  7. 学习项目部署Django+uwsgi+Nginx生产环境部署

    绪论 项目生产环境部署,是很重的一个知识点.第一,Django自带的服务器很简陋,由于测试和开发环境尚可,无法用于生产环境,保障安全性和可靠性.以及性能.此外,学习部署方式,还有利于了解生产部署后的项 ...

  8. 进击的 Ansible(二):如何快速搞定生产环境 Ansible 项目布局?

    Tips:与前文 <进击的 Ansible(一):Ansible 快速入门> 一样,本文使用的 Ansible 版本 2.5.4,项目演示环境 MacOS.由于 Ansible 项目开发活 ...

  9. Webpack配置区分开发环境和生产环境

    在项目开发的时候,我们通常会将程序分为开发环境和生产环境(或者叫线上环境),开发环境通常指的是我们正在开发的这个阶段所需要的一些环境配置,也就是方便我们开发人员调试开发的一种环境:生产环境通常指的是我 ...

  10. 从零搭建基于webpack的Electron-Vue3项目(1)——基于webpack的Vue3项目搭建

    从零搭建基于webpack的Electron-Vue3项目(1)--基于webpack的Vue3项目搭建 前言 本篇文章内容,主要是基于webpack的Vue3项目开发环境进行搭建,暂时还不涉及到El ...

随机推荐

  1. Qt编写安防视频监控系统19-日志查询

    一.前言 日志查询功能是基础功能,主要分两块,一个是本地日志查询,包括运行日志.报警日志.操作日志:一个是设备日志查询,就是通过SDK去拉去NVR设备的日志信息,包括系统操作.配置操作.报警操作.录像 ...

  2. Intellij IDEA开发环境中Springboot项目无Run ****main()的菜单

    问题描述: Intellij  IDEA开发环境中Springboot项目无Run ****main()的菜单. 解决办法有以下几种: 方法1:Idea无右键run选项, 无法通过main方法启动sp ...

  3. 开源即时通讯IM框架MobileIMSDK的H5端技术概览

    一.基本介绍 MobileIMSDK的H5端是一套纯JS编写的基于标准WebSocket的即时通讯库: 1)超轻量级.极少依赖: 2)纯JS编写.高度提炼,简单易用: 3)基于标准WebSocket协 ...

  4. 得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现

    本文由得物技术WWQ分享,原题"客服发送一条消息背后的技术和思",本文有修订和改动. 1.引言 在企业IM客服场景中,客服发送一条消息的背后,需要考虑网络通信.前端展示.后端存储以 ...

  5. 在Deepin系统上配置微软Windows远程桌面服务

    . 前言 本文主要讲解如何在deepin系统上安装和配置Xrdp远程桌面. Xrdp是微软的远程桌面协议(Remote Desktop Protocol, RDP)的开源版本.在Linux系统上安装X ...

  6. vs code 添加jquery的智能提示

    1.安装node.js 2.新建VsCodeTestApp文件夹,用vs code打开这个文件夹 3.打开cmd,进入TestApp文件夹所在盘符,然后cd进入VsCodeTestApp C:\Use ...

  7. weixueyuan-Nginx在Kubernetes10

    https://www.weixueyuan.net/nginx/kubernetes/ Kubernetes(k8s)分布式容器管理系统简述 Kubernetes 是分布式容器管理系统,它提供了对容 ...

  8. Dicom C-move 请求QR服务

    个人理解 Dicom C-get 就是在没有设置任何验证情况下请求QR服务,而C-move是有验证的情况下请求QR服务.一般都是C-move,因为机器都需要验证. Dicom C-move 原理:自己 ...

  9. 头文件中 ifndef/define/endif 有什么用?

    1. 相同的声明可以多次出现,重复声明不是错误! 定义不可以,无论是单个文件还是多个文件,某个特定作用域(比如全局变量),不可以重复定义变量. 2. 类/结构体的定义可以在多个文件中多次出现,但是不可 ...

  10. SM9-密钥封装

    算法过程 代码实现 ///************************************************************************ // File name: ...