# base-project-vite
**Repository Path**: hh_self/base-project-vite
## Basic Information
- **Project Name**: base-project-vite
- **Description**: vue3+vite+ts 搭建项目基础框架
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-01-31
- **Last Updated**: 2023-02-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Vue 3 + TypeScript + Vite 构建的基础项目框架
## 项目启动
**node 版本>=18**
```shell
npm install # 安装依赖
npm run dev # 运行项目
npm run build # 打包项目
npm run preview # 运行打包后的项目
```
## 目录结构说明
```
|-- .husky husky配置,commit提交格式限制
|-- .vscode vscode相关配置
|-- public 存放项目静态资源文件
|-- src
|-- api 存放接口文件
| |-- demo.ts 使用示例
|-- assets 存在项目资源文件
| |-- icons 存放 Icon 文件
| | |-- demo.png
| |-- images 存放 Images 文件
| | |-- demo.png
| |-- styles 存放 样式 文件
| | |-- base.less 自定义项目基础样式配置
| | |-- index.less 集合导出文件
| | |-- reset.min.css 浏览器差异解决重置样式文件
| | |-- variable.less 存储 less 变量文件
| |-- svgs 存放 svg 文件
| |-- demo.svg
|-- components 组件
| |-- HelloWorld.vue
|-- components-global 全局组件(无需在页面手动引入)
| |-- index.ts 导出全局公共组件文件
| |-- header 具体组件
| |-- index.vue 入口文件必需以 index.vue 命名
|-- router 路由
| |-- index.ts 路由配置文件
|-- store 状态管理
| |-- index.ts 基础配置文件
|-- utils 方法
| |-- axiosInstance.ts axios接口封装
| |-- storage.ts 本地存储localStorage/sessionStorage方法优化增强
|-- views 页面
|-- demo 示例
| |-- index.vue
|-- App.vue
|-- env.d.ts 环境变量类型声明文件
|-- main.ts 入口文件
|-- shims-vue.d.ts
|-- vite-env.d.ts
|-- vuex.d.ts vuex类型声明配置文件
|-- .env 公共环境变量文件
|-- .env.development 开发环境变量
|-- .env.production 生产环境变量
|-- .gitignore git忽略文件
|-- commitlint.config.cjs commit-lint 配置文件
|-- index.html 项目根文件
|-- package-lock.json
|-- package.json 依赖
|-- README.md 项目说明文件
|-- packStats.html 打包后生成的查看包大小页面
|-- tsconfig.json ts配置文件
|-- tsconfig.node.json
|-- vite.config.ts vite配置文件
```
## 关于样式
该项目引用的 css 预处理器是 less, 具体使用方法请查看[less 官网](http://lesscss.cn/)
在页面中设置样式时,颜色、字体等,建议都使用`less变量`,less 变量在`src/assets/styles/variable.less`中设置
一些组合样式,如:`button`、清除浮动、字数溢出省略、等,可以在`src/assets/styles/base.less`中设置
## 关于新增路由页面
在`src/views`中新建页面文件夹, 如:home,再在其内部创建 `index.vue` 文件
```vue
Home页面
{{ a }}
```
**挂载路由**,在`src/router/index.ts`中增加配置
```ts
// 路径需要写相对路径
const routes: RouteRecordRaw[] = [
...{
path: '/home',
name: 'home',
component: async () =>
await import(/* webpackChunkName: "home" */ '../views/home/index.vue'),
},
]
```
## 环境变量
[Vite](https://cn.vitejs.dev/guide/env-and-mode.html) 在一个特殊的 `import.meta.env` 对象上暴露了环境变量。有一些默认的内置变量
```ts
import.meta.env.MODE: {string} 应用运行的模式。
import.meta.env.BASE_URL: {string} 部署应用时的基本 URL。他由 base 配置项决定。
import.meta.env.PROD: {boolean} 应用是否运行在生产环境。
import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)。
import.meta.env.SSR: {boolean} 应用是否运行在 server 上。
```
其余环境变量在 `.env` | `.env.*` 中声明定义,使用 `import.meta.env.XXX` 去获取
> 定义的每一个环境变量都需要在 `src/env.d.ts` 中声明一下类型
## 代码提交规范
[Git - Commit message 提交规范](https://blog.csdn.net/weixin_46652769/article/details/128828716)
**Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。**
> Commit message 需要包括三个字段:`type`(必需)、`scope`(可选)和 `subject`(必需)
- type: 用于说明 commit 的类别,只允许使用下面 7 个标识。
```
feat:新功能(feature)
fix:修补 bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
```
- scope: 用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
- subject: 是 commit 目的的简短描述,不超过 50 个字符。
> 还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以 revert: 开头,后面跟着被撤销 Commit message
```shell
# 示例
git commit # 回车
# 进入vi编辑器,可以写多行。
revert: feat(pencil): add xxx
# 空一行
This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
```