前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次Vue项目打包卡在dist最后一步的问题

记录一次Vue项目打包卡在dist最后一步的问题

原创
作者头像
喵喵侠
修改2024-09-14 11:19:55
2701
修改2024-09-14 11:19:55
举报

前言

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

总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一些尝试
    • 删除node_modules后重新安装依赖
      • npm run build打包生成环境
        • 回退vue.config.js配置文件
        • 找到原因
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档