antd 的 Typography 组件的样式导入有问题
pymilk opened this issue · 0 comments
-
已阅读 文档.
-
确保您的代码已是最新或者所报告的 Bug 在最新版本中可以重现. (部分 Bug 可能已经在最近的代码中修复)
-
已在 Issues 中搜索了相关的关键词
-
不是 ant design vue 组件库的 Bug
描述 Bug
请清晰地描述此 Bug 的具体表现。
views 中新增一个页面,使用 ant design vue 组件库中的 Typography 组件,yarn dev 开发时能够正常加载显示,但是 yarn preview 预览时提示报错,关键的错误信息如下:
[vite]: Rollup failed to resolve import ".../f/node_modules/ant-design-vue/es/typography-paragraph/style/index" from "src/views/sys/about/index.vue".
This is most likely unintended because it can break your application at runtime.
意思就是找不到 Typography 组件的样式。
复现 Bug
请描述在演示页面中复现 Bug 的详细步骤,以确保我们可以理解并定位问题。部分 Bug 如果未在 Demo 中涉及,请务必提供关键代码
- 为了能够快速复现,修改原项目中的 About 页面即可,该文件路径为:src/views/sys/about/index.vue,页面内容修改如下:
<template>
<div>
<Typography>
<TypographyTitle>测试排版</TypographyTitle>
<TypographyParagraph>
1. 中文文档地址为 vben-admin-doc,采用 Vitepress 开发。如发现文档有误,欢迎提 pr 帮助我们改进。 <br />
2. 英文文档暂时没有时间来写,欢迎有时间的同学来帮忙写英文文档。 <br />
3. 感谢作者开源!!!
</TypographyParagraph>
</Typography>
</div>
</template>
<script language="ts" setup>
import { Typography, TypographyParagraph, TypographyTitle } from 'ant-design-vue';
</script>
- 使用 yarn dev 开发观看页面正常,使用 yarn preview 打包预览就会报错。
傻瓜式解决 Bug
报错信息说就是找不到 Typography 组件的样式,于是我阅读了一下 ant design vue 关于该组件的代码,发现 TypographyTitle、TypographyParagraph、TypographyText 等等以 Typography 开头的组件其实均在共用一个 typography 样式文件,因此修改导入部分的代码,让它能够正确导入改组件的样式即可。
由于我不懂前端,就采用以下方式比较傻瓜式的针对性方案,临时解决了以上 bug,但是不具备通用性,因为不确定是否也有同样的组件出现类似情况。需要作者进行优化处理。
傻瓜式解决办法:
修改 build/vite/plugin/styleImport.ts 文件中导入组件样式的代码如下,大概从第 16 行开始:
export function configStyleImportPlugin(isBuild: boolean) {
if (!isBuild) {
return [];
}
const styleImportPlugin = styleImport({
libs: [
{
libraryName: 'ant-design-vue',
esModule: true,
resolveStyle: (name) => {
+ // 处理 typography 组件
+ let new_name = name;
+ const name_list = name.split('-');
+ if (name_list[0] === 'typography') {
+ new_name = name_list[0];
+ }
+ return `ant-design-vue/es/${new_name}/style/index`;
},
},
],
});
return styleImportPlugin;
}
系统信息
- 操作系统: Mac 11.5.2
- Node 版本: 14.17.1
- 包管理器 (npm/yarn/pnpm) 及其版本: 1.22.11
- vben admin 版本:2.7.1
- ant design vue 版本:2.2.6
- vute 版本:2.5.0
作者辛苦了,开源不易,加油!!!