为什么要使用 Git 作为代码版本管理工具?

简介: 本文记录了一次Vue2项目打包卡在最后一步的排查过程。作者发现测试环境打包被阻塞,通过回退配置定位到`code-inspector-plugin`插件及`.env.test`中`NODE_ENV=production`的错误配置,修正后问题解决。

前言

你好,我是喵喵侠。在Vue项目开发中,项目开发完成后,打包是一个常见的操作。今天我遇到了一个奇怪的问题,那就是在一个Vue2项目中,执行npm run build打包,等待数秒后,可以看到完整的文件被打包,但是卡在了最后一步dist目录这里。不光我是这里,同事那边试过了也不行,以前从来没有遇到过的。于是我针对这个诡异的问题,做出了一些的尝试。

一些尝试

删除node_modules后重新安装依赖

这个方法很简单,首先使用rm -rf node_modules来删除项目所有依赖,然后删除pnpm-lock.yaml,然后pnpm install以下,安装依赖后,再执行pnpm run build:test,打包测试环境。

注意:我这里是pnpm的lock,如果你用的是npm,对应的是package-lock.json;如果你用的是yarn1.x,那么对应的是yarn.lock

这种方法试过了,还是卡在最后一步不动了,如下图所示。

npm run build打包生成环境

既然npm run build:test不行,那就试试npm run build吧。经过了测试后,发现打包生成环境是可以的,就是打包测试环境不行。我想不应该啊,环境不同只是后台请求的URL地址不一样,为什么test不是呢?此时我还没有发现问题的关键,但解决办法已经很接近了,于是有了后面的尝试。

回退vue.config.js配置文件

这个文件里面写了很多webpack相关的打包配置,如果是这个配置文件出了问题,那么打包的问题很可能就是这个导致的,因为一开始打包都是正常的。我回退到了最初始的版本,重新执行pnpm run build:test,发现居然可以了!

找到原因

我仔细对比了下前后vue.config.js的区别,发现是我引入的一个插件导致的,插件的名称叫做code-inspector-plugin,这是一款很好用的代码定位插件,可以帮助你快速从页面元素,定位到项目代码的指定为止。只要我引入了这个插件,打包就会一直卡住。

我去看了下官方文档,发现插件自动处理了环境的判断,不需要用户手动处理,但实际表现确实还是插件有影响。

既然是环境的问题,我就打开.env.test文件,仔细看了下配置,发现了问题所在!

好家伙!这里NODE_ENV写的不是production,而是test!难怪打包一直卡主不动。正常的npm run build可以,是因为环境写的是production

项目最开始的时候,这个环境写的就是test,我猜测可能是因为这个环境打包是没有压缩,会导致打包非常慢卡住不动了。但具体的细节原理还不是很清楚,配置书写正确后,打包就没有问题了,插件也不影响使用。

总结

有时候遇到一些奇怪的问题,不太好描述,也没法从搜索引擎找到合适的答案。这时候需要从多个角度进行思考尝试,逐一排查,最终找到问题的解决办法。

目录
相关文章
|
14天前
|
SQL 存储 关系型数据库
从一条慢SQL说起:交易订单表如何做索引优化
本文首先以淘天电商交易订单表线上一条非典型慢 SQL 的深入剖析为切入点,示范如何系统地分析与排查慢 SQL;接着详尽归纳了索引分类、B+Tree 与 B‑Tree 的结构差异、B+Tree 高度估算方法、EXPLAIN 与 Query Profile 等诊断工具的使用,以及索引下推与排序的执行流程等索引优化理论;最后结合日常实践经验,提出了适用于大规模线上集群的索引变更 SOP,并总结了常见的慢 SQL 成因与相应的解决策略。
201 36
从一条慢SQL说起:交易订单表如何做索引优化
|
3天前
|
人工智能 监控 安全
官方域名成“钓鱼温床”?Google Cloud自动化功能遭滥用,全球3000家企业中招
2025年12月,攻击者滥用Google Cloud合法服务,通过官方域名发送钓鱼邮件,利用storage.googleapis.com跳转诱导用户登录伪造页面,窃取企业账户。传统验证全“pass”,防御形同虚设。安全需从“信来源”转向“零信任”,强化行为分析与多层检测,警惕“合法外衣”下的点击风险。
57 1
|
3天前
|
机器学习/深度学习 测试技术 数据中心
九坤量化开源IQuest-Coder-V1,代码大模型进入“流式”训练时代
2026年首日,九坤创始团队成立的至知创新研究院开源IQuest-Coder-V1系列代码大模型,涵盖7B至40B参数,支持128K上下文与GQA架构,提供Base、Instruct、Thinking及Loop版本。采用创新Code-Flow训练范式,模拟代码演化全过程,提升复杂任务推理能力,在SWE-Bench、LiveCodeBench等基准领先。全阶段checkpoint开放,支持本地部署与微调,助力研究与应用落地。
383 1
|
4天前
|
自然语言处理 前端开发 Windows
推荐一款很好用的VSCode变量翻译插件
本文介绍VSCode插件“var-translate-en”,可一键将中文翻译为英文并转为小驼峰等命名格式,支持百度、腾讯、阿里等翻译服务。通过简单配置与快捷键设置,提升变量命名效率,解决命名难题。
92 0
|
4天前
|
安全 网络安全 开发工具
解决 Host key verification failed 报错的三种方法(含 SSH 安全建议)
本文由喵喵侠撰写,详解Git提交时常见报错“Host key verification failed”的成因与解决方案。当SSH密钥变更或服务器重装系统时,本地记录的主机密钥会失效,导致连接被拒。文章提供三种解决方法:使用`ssh-keygen -R`删除旧密钥、手动编辑`known_hosts`文件,或临时禁用严格检查(不推荐生产环境)。同时强调安全建议:确认服务器状态、核对密钥指纹、启用`VerifyHostKeyDNS`防范中间人攻击。帮助开发者快速定位问题,保障代码提交顺畅。
100 0
|
4天前
|
移动开发 前端开发 JavaScript
uni-app实战案例:实现H5页面麦克风权限获取与录音功能
本文介绍如何在uni-app的H5页面中实现麦克风权限获取与录音功能,涵盖音频流转换为Blob、Base64及文件下载的完整方案,助力前端语音交互开发。
115 0
|
1天前
|
人工智能 小程序 JavaScript
uni-app微信小程序相机组件二次拍照白屏问题的排查与解决
本文分享了在uni-app开发微信小程序时,因状态管理不当导致拍照后图片不显示的bug排查过程。问题根源在于删除照片时将变量设为“#”(truthy值),导致条件渲染逻辑错误。通过彻底清空相关状态并遵循最佳实践,最终解决问题。
20 2
|
4天前
|
JavaScript 前端开发 开发者
如何防止Vue页面局部元素滚动时,页面整体滚动?
本文由喵喵侠分享,针对Vue中列表组件滚动时触发页面整体滚动的问题,分析了`e.stopPropagation()`无法阻止默认行为的原因,并提出使用`e.preventDefault()`来禁止浏览器默认滚动。同时扩展介绍了该方法在阻止表单提交、链接跳转等场景的应用,以及与`return false`的区别,帮助开发者更精准地控制事件行为。
34 1
|
4天前
|
存储 人工智能 开发工具
为什么要使用 Git 作为代码版本管理工具?
本文由喵喵侠分享,对比了SVN与Git两大版本管理工具。SVN集中式管理适合小团队,但离线操作受限、分支繁琐;Git凭借分布式架构、高性能和强大分支功能成为主流,尤其适合远程协作。尽管学习曲线较陡,但其生态丰富,未来将向AI集成、图形化界面和更智能的协作发展,是开发者必备技能。
44 1
|
4天前
|
JavaScript 前端开发 开发者
JavaScript实战:探究数组循环截取的实现技巧
本文介绍如何使用JavaScript实现数组的循环截取功能,适用于视频列表轮播等场景。通过for循环和slice两种方法,每隔固定时间截取4个元素并循环滚动索引,保证无缝衔接。详细讲解实现思路、代码解析及两种方法的优劣对比,帮助开发者提升实际编码能力。
32 1

热门文章

最新文章