问题描述:
之前使用的 vite2 版本,需要在 vite.config 里配置 vue 别名,不然会有commonjs 的依赖包找不到 vue,因为 vite 默认使用 esm 版本。
'vue': 'vue/dist/vue.common.prod.js'
在 vite2 中可以正常进行打包上线,在升级 vite4 后,需要增@vitejs/plugin-vue2、@vitejs/plugin-vue2-jsx等插件,本地运行正常,但打包后运行项目会报错:
排查步骤:
步骤 1:因为 index 文件太大,将各资源分开打包,确认是某依赖包的报错
步骤 2:看具体的报错也原因仍看不出来问题,将项目删繁就简,只保留基础结构,可以正常打包运行
步骤 3:从最基础的项目逐渐添加内容,随着一个平平无奇的组件的添加,开始报错,无法分析原因
步骤 4:新建一个 vite4 项目,可以正常运行打包,没有报错
步骤 5:用新项目中的 vite.config 配置代替原项目的配置,可以正常打包运行,逐行分析问题原因
结论:
排查多方面原因后,确认是 vue 别名影响了打包后的引用顺序,需要在build 时去掉此别名,但本地运行时需要此别名,不然会频繁出现警告,因此在 vite.config.js 中作如下配置:
其他配置保持原状。
至此可以顺利打包发布,不会再有报错