在vite项目中使用elementPlus在打包后设置语言报错
作者:互联网
elemet-plus版本:1.0.2-beta.55
按照官网文档进行配置
import { createApp } from 'vue'
import { ElButton, locale } from 'element-plus'
import lang from 'element-plus/lib/locale/lang/zh-cn'
import 'dayjs/locale/zh-cn'
locale(lang)
createApp(App).component(ElButton.name, ElButton)
// 配置 vite.config.ts
// 。。。。
styleImport({
libs: [
{
libraryName: 'element-plus',
esModule: true,
ensureStyleFile: true,
resolveStyle: (name) => {
return `element-plus/lib/theme-chalk/${name}.css`;
},
resolveComponent: (name) => {
return `element-plus/lib/${name}`;
},
}
]
// 。。。
打包上线 执行界面报错
本地开发是不会受到影响的
排查问题 发现是 vite-plugin-style-import 插件 resolveComponent 配置出问题了
// https://github.com/anncwb/vite-plugin-style-import/pull/5
// Used in some situations where components may need to be introduced on demand, not just to introduce styles.(Libraries that don't support Esm well)
// Only work in production
resolveComponent?: (name: string) => string;
也就是说这个配置会在生产环境生效,导致我们去加载 locale 的时候 去加载了 element-plus/lib/locale
而这个 配置返回的是个 object 不是个方法 所以会导致报错,
解决办法,暂时可以先把这个配置删除,获取增加判断
标签:elementPlus,name,locale,element,报错,plus,import,vite 来源: https://blog.csdn.net/chendf__/article/details/118893277