说到 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. composer [ErrorException] Undefined index: process

    执行了升级composer self-update导致了 降级处理 composer self-update --1 composer install

  2. Qt编写安防视频监控系统60-子模块4云台控制

    一.前言 云台控制是一个很老很基础的模块了,视频监控系统中必备的特殊模块之一,可以对选中的通道的摄像机(ONVIF协议),进行云台控制,可以控制球机的上下左右等各个方位的移动,还可以调节变倍步长,至于 ...

  3. [转]解决Spring Data Jpa 实体类自动创建数据库表失败问题

    先说一下我遇到的这个问题,首先我是通过maven创建了一个spring boot的工程,引入了Spring data jpa,结果实体类创建好之后,运行工程却没有在数据库中自动创建数据表. 找了半天发 ...

  4. gRPC编译与字段编号的细节探讨

    上次我们专门通过一个简单的HelloWorld示例来了解了gRPC的基本概念和使用方法.今天,我们将继续深入探讨gRPC,重点讨论一些在实际应用中需要特别注意的要点.实际上,gRPC的核心目标是简化远 ...

  5. PHP 安装启用imagick(解决 word press可选的模组imagick未被安装或已被禁用)

    本教程仅适用Windows Servier IIS网站服务器. 我的博客使用IIS搭建,相比Linux,相关的教程格外少.因此让以后的小伙伴也能马上解决问题,分享此方法. 首先需要下载php对应版本的 ...

  6. ESP8266 wifi模块+CH340烧录板安装使用运行教程

    硬件准备 ESP8266-01S 模块 USB转TTL烧录板(CH340) LED灯(建议使用3.3V LED) 220Ω电阻(LED限流) 面包板和跳线若干 我的是这样的不用接线,其他的参考 ESP ...

  7. Redis 学习笔记之基础

    一.Redis 是什么 Redis 是一个使用 C 语言写成的,开源的.key-value 结构的.非关系型数据库.它支持存储的 value 类型相对更多,包括 String(字符串).List(列表 ...

  8. MQ---消息队列概念和使用场景

    消息队列概念和使用场景 声明:本文转自:MQ入门总结(一)消息队列概念和使用场景 写的很好,都不用自己在整理了,非常感谢该作者的用心. 一.什么是消息队列  消息即是信息的载体.为了让消息发送者和消息 ...

  9. mysql数据库主从同步I/O问题修复

    mysql数据库主从同步I/O问题,下面介绍比较靠谱的修复方法. 主节点IP:10.99.202.25,从节点IP:10.99.202.26,修复步骤如下: 1,查看主库repl账号访问权限 mysq ...

  10. wget命令简单使用

    wget是Linux下一个文件下载工具.wget支持HTTP.HTTPS.FTP协议,可使用HTTP代理. 所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成. w ...