为什么要使用 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,我猜测可能是因为这个环境打包是没有压缩,会导致打包非常慢卡住不动了。但具体的细节原理还不是很清楚,配置书写正确后,打包就没有问题了,插件也不影响使用。

总结

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

目录
相关文章
|
9月前
|
弹性计算 安全 网络协议
阿里云专有网络VPC通过逻辑隔离、安全边界控制及网络分段与分区保障云上隔离
阿里云VPC构建逻辑隔离的私有网络,支持自定义IP、子网划分及路由配置,通过隧道号实现VPC间二层隔离,结合安全组、网络ACL和IPv4/IPv6网关实现多层安全控制,灵活组网满足高可用与安全需求。
|
9月前
|
传感器 安全 前端开发
USB专用过压保护ic芯片选型指南
平芯微电子推出高性能过压过流保护芯片系列,涵盖OVP/OCP双重防护、超低内阻、宽压可调等创新技术,提供从消费电子到车载系统的全场景电源保护方案,助力提升产品可靠性与竞争力。
|
9月前
|
数据采集 缓存 开发框架
RFC规范解释、URL 与 Body 、GET/POST 的核心区别详解
本文深入解析RFC规范下GET与POST的本质区别:GET语义为“只读”,安全且幂等,适用于获取资源;POST为“写操作”,不安全也不幂等,用于提交数据。详解URL与Body用法误区,并揭示安全、幂等属性对开发的影响,助你避开常见坑,写出更规范的接口。
947 3
|
9月前
|
存储 Shell Linux
玩转Linux Shell数组(从零开始掌握Shell数组初始化技巧)
本教程详解Linux Shell数组初始化,涵盖空数组声明、赋值初始化、指定索引、命令输出填充等方法,助你掌握Bash数组基本操作,提升脚本编写效率,适合Shell初学者快速入门。
|
9月前
|
存储 弹性计算 安全
2026年阿里云计算型 c7 实例全解析:性能参数、场景适配与选型参考
阿里云 ECS 计算型 c7 实例依托第三代神龙架构,以 Intel Ice Lake 处理器为核心,聚焦计算密集与高网络负载场景,提供从 2 核 4G 到 128 核 256G 的全规格配置,兼具性能稳定性与安全特性,以下从硬件架构、核心参数、适用场景及选型对比展开解析。
|
9月前
|
缓存 网络协议 Linux
RARP协议详解(Linux下反向地址解析协议入门指南)
RARP(反向地址解析协议)是一种早期网络协议,用于通过MAC地址查询IP地址,常用于无盘工作站启动时获取IP。与ARP相反,RARP实现从MAC到IP的映射。尽管现已被DHCP取代,了解RARP仍对学习Linux网络配置和网络协议演进具有重要意义。
|
9月前
|
弹性计算 人工智能 NoSQL
2026年阿里云服务器购买指南:价格体系与选型参考
阿里云服务器主要分为轻量应用服务器与云服务器 ECS 两大品类,覆盖从个人开发到企业级业务的全场景需求。不同实例类型在配置、性能、价格上差异显著,用户需结合业务规模与预算选择适配方案。本文基于官方定价与实测数据,从产品分类、价格详情、选型建议三方面展开解析,为用户提供客观购买参考。
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
论文精读:DeepSeek-R1是如何通过强化学习增强LLM推理能力的?
DeepSeek-R1通过纯强化学习与冷启动结合,实现强大推理能力,并利用蒸馏技术将“智慧”传递给小模型,推动大模型训练新范式。
511 0
|
9月前
|
机器学习/深度学习 缓存 异构计算
JAX性能优化实战:7个变换让TPU/GPU吃满算力
JAX性能提升七技巧:jit稳定形状、vmap替代循环、scan融合长序列、remat用计算换内存、pmap单机多卡、pjit实现SPMD并行、value_and_grad正确组合。配合分片与aux输出,最大化XLA优化,提升计算效率。
403 1
JAX性能优化实战:7个变换让TPU/GPU吃满算力
|
9月前
|
缓存 数据可视化 算法
【LED室内定位系统仿真软件:基于Python的高性能可视化仿真平台】
本文介绍基于Python与PyQt6开发的LED室内定位系统仿真软件,支持可见光通信(VLC)场景下的交互式仿真、实时信号分析与轨迹记录。提供时域、频域可视化、多参数配置及数据导出功能,适用于教学、科研与算法验证。项目开源,便于二次开发与扩展。
420 6