# uniapp+Vue3 + typescript + vite + pinia+ mock框架
**Repository Path**: tofireloli/cruelLoli-vue3
## Basic Information
- **Project Name**: uniapp+Vue3 + typescript + vite + pinia+ mock框架
- **Description**: 基于uniapp开发,项目框架采用vue3+uniapp+vite+ts+pinia+mock+多环境配置,以上功能全面支持app,h5,小程序,并且支持阿里iconfont快速导入,为中大型项目开发打下基础
- **Primary Language**: JavaScript
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 12
- **Forks**: 2
- **Created**: 2023-07-17
- **Last Updated**: 2025-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Vue, JavaScript, uni-app, TypeScript
## README
# 开发规范
### 1、推荐项目开发工具
- 项目运行工具hbuilderX
- 项目开发工具VS Code,支持eslint校验,推荐下载扩展工具
(1)`uni-ui-snippets`: uni-ui 组件代码片段
(2)`uniapp-snippet`: uniapp 代码提示
(3)eslint,vetur,Vue3 Snippets等
### 2、项目组体框架
- 开发框架: vue3 + typescript + vite + pinia + mock
- UI框架:uni-ui,文档及演示地址:https://uniui.dcloud.net.cn/
- Uni-app API文档:https://uniapp.dcloud.io/api/
- Ajax库 官方文档:https://uniajax.ponjs.com/guide
- px单位采用**rpx**,一屏宽度固定750rpx(px与rpx换算一般为1:2),**字体大小采用px**
### 3、安装使用
- 安装依赖
```
npm i
```
### 4、项目运行
##### 一、H5端运行
1. hbuilderX运行
运行 > 本地环境(mock环境)/联调环境/测试环境/生产环境
2. cmd运行
```
npm run serve // 本地环境
npm run serve:custom h5-dev // dev环境
npm run serve:custom h5-test-next // 测试环境
npm run serve:custom h5-uat // 生产环境
```
##### 二、 APP端运行
1. 项目目录 `src/utils/app_env.ts` 中,`return` 不同环境变量,APP端执行不同环境代码,在首页demo中可直接参考使用
```
// 测试环境
const testNext: EnvType = {
NODE_ENV: '',
VUE_APP_MODE: 'test-next',
VUE_APP_URL: 'xxxx'
}
// 生产环境
const uat: EnvType = {
NODE_ENV: '',
VUE_APP_MODE: 'uat',
VUE_APP_URL: 'xxxx'
}
// return不同环境变量,app端执行不同环境
return testNext
```
2. APP在手机上真机联调方法
https://hx.dcloud.net.cn/Tutorial/App/PhoneDebugging
3. 常见问题解决方法
- 手机连接无反应,开启开发人员选项,开启usb调试
- 手机连接方式从充电模式改为文件传输模式
- 查看电脑是否存在adb通道被占用的情况,常见占用的软件如 酷狗音乐 等
### 5、项目打包
##### 一、H5端打包
1. hbuilderX打包
发行 > 网站-PC Web或手机 H5
2. cmd运行
```
npm run build
```
3. 打包文件位置
```
根目录/dist/build/h5
```
##### 二、 APP端发行
1. 发行 > 原生APP-云打包 -填写包名/证书/密钥等 > 快速安心打包
2. 等待云打包排队执行,并产生一个本地安装包
### 6、项目目录结构
```
-dist // 打包文件
-mock/mocks // mock数据
-node_modules
-src
-assets.css // 公共样式
-components // 全局组件 u- || common- 开头的组件无需在业务中引入可直接使用
-pages // 功能页面/组件
-schema // 公共ts
-static // 静态资源
-store // vuex 每新增一个modules都要在index.d.ts中引入
-uitls // 公共函数的储存位置
-App.vue // 项目入口
-manifest.json // uni配置文件
-pages.json // router文件
-uni.scss // 公共主题颜色
-
-packages.json
-tsconfig.json
-vite.config.ts
```
2. 接口请求格式 (根据自身业务修改)
```
// 引入ajax
import $ajax from '@/utils/ajax'
// 例:查询接口 /captcha/code
const respData = await $ajax.get({url: '/captcha/code'})
```
3. mock数据
创建mock数据存放于mock/mocks下
目录格式: mock/mocks/...接口路径.ts
如接口地址为:abc/cc/dd/ee
则路径为 mock/mocks/abc/cc/dd/ee.ts
```
export default () => {
return {
statusCode: 200,
body: {
code: 0,
data: {
accessToken: 'accessToken',
refreshToken: 'refreshToken',
userInfo: {
name: '123',
icon: 'icon'
}
},
msg: '登录',
success: true
}
}
}
```
### 8、页面结构
所有页面最外层需要用u-page包裹,已作用全局无需引入 (按业务需要来,我这边只是做了一个工共封装,用于多颜色切换,通用header等)
```
// 主体内容