1、css预处理器:Scss
1 | yarn add sass -D |
直接运行即可,在.vue中也可以直接使用了scss
变量如果要导出到全局的话,需要在vite.config.ts中添加如下配置项:
1 | //... |
2、Vue-Router和Pinia
1 | yarn add vue-router pinia -S |
另外,pinia还需要用到数据持久化,所以还需要安装持久化插件
1 | yarn add pinia-plugin-persist -S |
在src下新建store和router目录分别用来管理状态和路由
store
1 | // store/index.ts |
在main.ts中引入pinia
1 | import { createPinia } from 'pinia'; |
router
1 | //===== router/routes.ts => 放置路由表 |
在main.ts中引入
1 | import { router } from './router'; |
3、Element-Plus与按需加载
1 | yarn add element-plus -S |
按需加载的话,还需要使用额外的插件,可以使用官网的按需加载,这里使用尤雨溪推荐的unplugin-vue-components
插件
1 | ```bash |
修改vite.config.ts配置
1 | import Components from 'unplugin-vue-components/vite'; |
这样就可以直接在template中使用element-plus组件,而不需要每次都手动引入。
使用自动引入遇到的一系类问题
1. 自动引入,控制台警告
问题[vite] Failed to load source map for /node_modules/.vite/chunk-CCWPAK2K.js?v=XXXXXXXX.
or[vite]:new dependencies found: ant-design-vue/es/spin/style/css, ant-design-vue/es/select/style/css, updating...
报错中提示我们node_modules
下的.vite中没有xxxx.js文件,我翻看.vite目录,发现只有一个package.json文件,而没有xxxx.js,所以会报错
排除的方法:
1、输出node_modules,重新安装依赖
2、第三方插件的影响,只要是新增插件重新安装node_modules都会出现这个问题
3、自动引入是不是不支持手动引入组件,注释项目中的手动引入,发现没有影响
最后,试了一下将自动引入的插件去掉,使用全局引入的方法,发现没有报错,可以得知是由于自动引入插件没有找到依赖而产生的问题。
其实是没有影响的,这些警告会在一段时间的自动修复后,不会在出现。当页面需要跳转时可以暂时把判断逻辑注释,不要拦截让其先跳转最简单的页面布局,自动修复后再复原页面。
2、按需引入ElMessageBox样式丢失
1 | // 单独引入ElMessageBox |
3、Element菜单折叠卡顿
编写项目导航栏折叠过程中,发现折叠时菜单发生卡顿(图标闪烁), 影响用户体验
需要加上一些样式进行处理,样式如下
,同时设置菜单宽度也在这个CSS里面设置,效果完美
1 | .el-menu-vertical-demo:not(.el-menu--collapse) { |
4、打包报错,查找报错信息发现是element-plus相关的错误
解决方法
在 tsconfig.json
文件中 compilerOptions
选项下加入 "skipLibCheck": true
// 跳过自由检查
1 | { |
5、Ts引入第三方包报错:“无法找到模块”
解决办法有两种:
方法一:安装库的TypeScript声明文件
方法二:添加自己写库的TypeScript类型声明
在方法一可行的情况下,推荐使用方法一,但是不是所有库都有 TypeScript 的声明文件,所以方法一无效才用方法二。
方法一:
根据报错提示哪个库缺TypeScript声明文件安装对应的就是了
1 | npm install -D @types/库的名字 |
方法二:自己添加特定库的ts类型声明
新建types类型文件夹,添加index.d.ts类型文件
1 | declare module 'xxxxxx'; |