前言
项目是去年4月创建的,使用的vue3 + vite2.x,element-plus^2.2.16搭建的,最近发现vite4改进性能,就vue3, vite,element-plus相关的包都升级了一波
问题产生原因
升级了这些后,进行构建,发现了失败,对vite版本,vue3版本进行了回退,都不能解决,一直报下面的错误
ERROR [commonjs--resolver] No known conditions for "./lib/locale/lang/zh-cn" specifier in "element-plus" package
ERROR error during build: 11:04:49
Error: No known conditions for "./lib/locale/lang/zh-cn" specifier in "element-plus" package
网上也没有查找到原因 后面去element-plus官网上,经查找,发现引入locale的写法发生的变化 旧的写法是: main.js
import locale from 'element-plus/lib/locale/lang/zh-cn'
app.use(ElementPlus, { locale })
新的写法是:
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
app.use(ElementPlus, { locale: zhCn })
更换为新的写法后,报错信息消失。 所以在在升级版本后,一定要慎重,还好离上线时间还有几天,不然直接上,就要完蛋了。
结尾:
开始以为是 vite 版本的问题,还想着提 issues,而且也准备给 element-plus 提呢,他们提issues 需要在他们提供的环境中复现,我这边就没有操作,在本地多次尝试,才找到了原因。在有时间的情况下,可以升级版本,但要考虑到有些写法可能会发生变化,再排查问题时也有个方向。 希望对大家有帮助。 记录日常开发中的问题。