解决升级 Element-plus为最新版本(2.3.8) 的报No known conditions for "./lib/locale/lang/zh-cn

5,340 阅读1分钟

前言

项目是去年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 需要在他们提供的环境中复现,我这边就没有操作,在本地多次尝试,才找到了原因。在有时间的情况下,可以升级版本,但要考虑到有些写法可能会发生变化,再排查问题时也有个方向。 希望对大家有帮助。 记录日常开发中的问题。