- vue3-snippets-for-vscode
- Vue Language Features(Volar)
- TypeScript Vue Plugin(Volar)
- Vue Peek
- Auto Rename Tag
- Auto Import
- CSS Class Intellisense
- ESLint
- Git Graph
- Git History
- Peacock 开多个窗口是,便于区分
- UnoCSS unocss提示工具
- Chinese 汉化
- Better Comments 注释高亮
- JSON to TS 根据json文件自动生成ts类型
- 安装eslint
pnpm i eslint -D - 生成配置文件:
.eslint.cjsnpx eslint --init - 手动生成
.eslintignore - 修改
.eslint.cjs配置文件, 见项目 - 修改package.json
"scripts": {
...
"lint": "eslint --ext .ts,.js,.vue src"
},-
安装 相关依赖
pnpm install husky @commitlint/cli @commitlint/config-conventional -D -
新建
commitlint.config.cjs,见项目 -
修改package.json
"scripts": {
...
"prepare": "husky install",
},- 执行
pnpm run prepare - 执行
npx husky add .husky/pre-commit "pnpm run lintcommit前执行eslint检验
- 执行
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'commit前校验commit的message格式
// vite.config.ts
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
}
}
//tsconfig.json
"baseUrl": "./",
"paths": {
"@/*":["src/*"],
}- 安装依赖
pnpm i vite-plugin-mock@2 mockjs -D - 配置
vite.config.ts:import { viteMockServe } from "vite-plugin-mock"; plugins: [ //... viteMockServe({ mockPath: "./mock",//设置mock文件存储目录 localEnabled: true,//设置是否启用本地mock文件 logger: true,//是否在控制台显示请求日志 }), ],
symbol方式引入
- 在阿里字体官网下载iconfont.js,并全局引入
- 封装svg-icon组件,注意
<use :xlink:href="xxx" />中xxx是直接写入#字体图标名称,不要加其他前缀
按照文档配置后,按需引入时,不用在特别import组件,可以直接使用,就像全局组件一样。
配置代理后,浏览器控制台网络面板还是显示的localhost,但实际发往目标地址了
.env.xxx文件
默认情况下,新建的VITE_开头的变量没有ts提示,如果需要提示可以安装官方文件配置下
postcss可以理解为css后处理器,它处理less、scss等预处理器处理过后的css。比如:
- 增加浏览器厂商前缀
- css语法降价
- ....
最常用的postcss插件:
postcss-preset-env;
具体的配置方法请查看postcss官方配置
使用rollup分包策略进行分包,具体参考rollup拆分公共chunk文档
build: {
rollupOptions: {
output: {
manualChunks: {
lodash: ['lodash'],
element_plus: ['element-plus']
}
}
}
}- 引入
useNamespace,并生成命名空间(前缀)
import { useNamespace } from 'element-plus';
const ns = useNamespace('w-icons'); // 使用element_plus的默认全局命令空间,解析class为:el-w-icons
const ns = useNamespace('w-icons', ref('wlk')); // 自定义命令空间,解析class为:wlk-w-icons- 样式文件:
<style lang="scss" scoped>
/* 不适用自定义命名空间 */
@include b(w-icons){
font-size: 25px;
}
/* 使用自定义命名空间 */
$namespace: wlk;
@include b(w-icons){ /* 这里的b混合是全局引入了element_plus定义的mixins, vite.config.ts的 @use "element-plus/theme-chalk/src/mixins/mixins" as *; */
font-size: 25px;
}
</style>- 模版文件:
<!-- 产生一个BEM的B -->
<p :class="[ns.b()]">test</p>:deep(.el-button){
color: pink;
}- unocss插件是需要寻找到uno.config.ts文件才能生效的,所以一定要有该文件。
- 同时,在monorepo或者workspace模式下,需要在setting.json中配置uno.config.ts的路径。
"unocss.root": [ "D:/code/vue3-ts-demo", "D:/code/wicv-front-admin" ],