说到 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. 百度统一socket长连接组件从0到1的技术实践

    本文由百度消息中台团队分享,引用自百度Geek说,原题"百度iOS端长连接组件建设及应用实践",为了帮助理解,本文有修订和改动. 1.引言 在过去的十年里,移动端互联网技术飞速发展 ...

  2. Docker安装Redis并设置密码

    1. 镜像下载 docker pull redis 2. 创建目录 mkdir -p /etc/redis/redis.conf mkdir -p /data/redis 3. 启动容器 docker ...

  3. Solution -「AGC 058D」Yet Another ABC String

    \[\mathfrak{Defining~\LaTeX~macros\dots} \newcommand{\chr}[1]{\underline{\texttt{#1}}} \] \(\mathscr ...

  4. CDS标准视图:功能位置 I_FunctionalLocation

    视图名称:I_FunctionalLocation 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location' @Analytics: ...

  5. 开箱你的 AI 语音女友「GitHub 热点速览」

    随着大模型 API 服务的不断丰富,开发者无需再依赖昂贵的硬件,也能轻松开发出拥有强大 AI 能力的应用.这不仅降低了技术门槛,也激发了极客们的创造力. 就比如上周飙升 1.5k Star 的开源项目 ...

  6. SpringBoot+SpringSecurity+JWT整合实现单点登录SSO史上最全详解

    一.什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用 ...

  7. 基于Redis组件的特性,实现一个分布式限流

    分布式---基于Redis进行接口IP限流 场景 为了防止我们的接口被人恶意访问,比如有人通过JMeter工具频繁访问我们的接口,导致接口响应变慢甚至崩溃,所以我们需要对一些特定的接口进行IP限流,即 ...

  8. ORACLE存储过程编程应用实例-门诊药房发药

    最近两个整理了门诊药房发药的业务逻辑,准备通过存储过程实现数据处理.耗费两天时间验证终于完成,对存储过程的了解又深入了一些,总结如下: 1.游标的遍历使用了FOR IN语句进行循环,比FETCH与方便 ...

  9. 【异步编程实战】如何实现超时功能(以CompletableFuture为例)

    [异步编程实战]如何实现超时功能(以CompletableFuture为例) 由于网络波动或者连接节点下线等种种问题,对于大多数网络异步任务的执行通常会进行超时限制,在异步编程中是一个常见的问题.本文 ...

  10. 容器、容器云和容器化PaaS平台之间到底是什么关系?

    本文分享自天翼云开发者社区<容器.容器云和容器化PaaS平台之间到底是什么关系?>,作者:s****n 一直都有很多人迷惑于容器应该属于 IaaS 或是 PaaS 层,也搞不清楚容器云到底 ...