今天项目进行生产构建时突然就报错了,报错的地方是我引入的第三方库 ant-design-vue 和 bytemd ,错误大概如下:
node_modules/ant-design-vue/lib/vc-select/Select.d.ts:175:21 - error TS2304: Cannot find name 'EventHandlerNonNull'.
onPopupScroll?: EventHandlerNonNull;
node_modules/bytemd/lib/index.d.ts:1:20 - error TS2307: Cannot find module './editor.svelte' or its corresponding type declarations.
import Editor from './editor.svelte';
现在很多项目都使用了第三方UI组件库,如: Element UI 、 Ant Design Vue 、 View UI 、 Vuetify 等等。引入的方式分为 完整引入 和 按需引入 两种方式。
使用路径别名可以大大减少项目中 ../
、../../
的情况。但配置路径别名则需要分别对 Vite 、TypeScript 、 ESLint 进行单独的配置。
- 配置 Vite 可以避免编译出错(如
npm run dev
、npm run build
)。 - 配置 TypeScript 可以避免 ts 报错( Cannot find module ... )。
- 配置 ESLint 可以避免 eslint 报错(如果使用了 airbnb 代码风格)
Vite 以启动快著称,我的项目也使用了 Vite ,但启动速度却不是想象中的那么快。项目使用的是 ElementPlus 组件库,根据官方文档的推荐使用了 unplugin-vue-components 做按需引入,随着项目越做越大,启动速度也是越来越慢。
问题原因
由于实在是太慢了,所以做了一次排查,最后发现是使用了 unplugin-vue-components 导致慢,将 ElementPlus 改成全量加载启动速度是非常的快。翻了一下 unplugin-vue-components 的 GitHub Issues ,原来也有其他人遇到同样的问题。作者说是 Vite 的问题 #301
1 / 1