1 Star 0 Fork 27

BabySeeME「大雄」 / uniapp vue next starter

forked from dodu / uniapp vue next starter 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

uniapp vue next starter

uniapp Vue3 Vite TypeScript 快速开发解决方案,cli 方式创建, 集成 TMUI UnoCSS(实现零 CSS 开发),集成 HBuilderX cli(APP 模式一键打包:自定义基座、云打包)

仓储:https://gitee.com/dodu/uniapp-starter,线上示例:live demo (H5)

特性

  • 最新技术栈:使用 Vue3/Vite4/TypeScript5/pinia 等前端前沿技术开发;
  • UI集成:集成 TMUI 跨端组件,支持 nvue 原生渲染 H5 小程序 安卓 IOS 等全端组件库;
  • Unocss 原子化 CSS:预设图标:preset-icons 使用 iconify 图标(可使用全网所有图标),unocss-preset-weapp 小程序支持,配置参考:unocss.config.js;
  • @antfu/eslint-config:规范代码格式预设配置,统一编码,使用简单,去 Prettier(为什么我不使用Pretier);
  • 路由拦截:基于 uni.addInterceptor 进行路由拦截;
  • 请求拦截:核心使用 luch-request,支持请求和响应拦截等;
  • mockjs 集成:H5 模式集成 mockjs,仅前端开发,并配置 api 统一响应结果:ApiResult,支持泛型 ApiResultOf<T>,服务器端只需要符合 ApiResult 规范即可支持生产模式;
  • 缓存加密:使用 AES 加密缓存,可设置区分在开发或生成环境中是否加密;
  • HBuilderX cli 集成:通过命令实现启动hbx、打包自定义基座、云打包(使用前需把cli集成到环境变量),打包配置参考:uniapp.pack.json,该文件只是配置参考,实际使用的是 uniapp.pack.json.local,该文档从 uniapp.pack.json 复制,考虑多PC开发情况,配置可能不一样,为了不产生 git 变更而使用 .local,单PC环境,可直接使用 uniapp.pack.json

示例

预览(H5、微信小程序、APP)

说明

  • cli 创建的 Vue3/ts 项目 与 使用 HBuilderX 导入插件的包有差异,请直接访问 开源地址
  • 框架完全基于 Vue3 SFC <script setup> 语法糖写法(包含示例页面),不支持 Vue2;
  • 可用于学习与交流;
  • 目前测试 H5、微信小程序,APP(Android)通过;
  • 其他平台暂未测试,后续会增加;
  • 如发现问题或建议可在评论区留言, 或提 IssuesPR,尽可能及时处理;
  • 如有需求亦可在评论区留言,或在此项目基础上增加;

安装使用

  • 安装依赖
pnpm install
  • 运行
# 其他端请查看 package.json script
pnpm dev:h5
pnpm dev:mp-weixin
pnpm dev:app
  • 编译
# 其他端请查看 package.json script
pnpm build:h5
pnpm build:mp-weixin
pnpm build:app
  • 打包
# 打包自定义基座
pnpm hbx:custom

# 云打包(apk)
pnpm hbx:pack

打包自定义基座过程(vscode):

打包效果

正式云打包过程(vscode):

打包效果

  • 更新 uniapp cli 到最新
pnpm uniapp-cli:latest

目录结构

打开/折叠
├─ scripts
│   └─hbx.pack.js # 利用 HBuilderX cli 打包脚本

├─ src
│   ├─assets # 静态资源目录
│   │
│   ├─components # 组件目录
│   │   ├─ AppProvider
│   │   │    ├─index.vue
│   │   └─...
│   │
│   ├─enums # 枚举/常量
│   │   ├─ appEnum.ts
│   │   └─...
│   │
│   ├─hooks # 钩子
│   │   ├─ router.ts
│   │   └─...
│   │
│   ├─pages # 页面
│   │   ├─ index
│   │   │    └─index.vue
│   │   └─...
│   │
│   ├─pages-tmui # tmui 组件展示 和 示例 分包
│   │   └─...
│   │
│   ├─pages-unocss # unocss 示例
│   │   └─...
│   │
│   ├─pages-demo # demo 页面分包
│   │   └─...
│   │
│   ├─router # tmui 必须
│   │   └─index.ts
│   │
│   ├─services # 接口相关
│   │   ├─ api # api
│   │   │    ├─auth.ts
│   │   │    └─...
│   │   │
│   │   └─ model # 数据模型
│   │        ├─authModel.d.ts
│   │        └─...
│   │
│   ├─settings # 设置
│   │   └─ encryptionSetting # 加密设置
│   │
│   ├─state # 状态管理模式(pinia)
│   │   ├─ modules # 数据模块
│   │   │    ├─auth.ts
│   │   │    └─...
│   │   │
│   │   └─ index.ts
│   │
│   ├─static # 静态公共文件
│   │   ├─ images # 图片
│   │   │    ├─avatar.png
│   │   │    └─...
│   │   │
│   │   └─ ...
│   │
│   ├─theme # tmui 必须
│   │   └─index.ts
│   │
│   ├─tmui # tmui 组件
│   │   ├─ components
│   │   └─ ...
│   │
│   ├─types # 类型文件
│   │   ├─ http.d.ts
│   │   └─ ...
│   │
│   └─utils # 工具类
│       ├─ cache # 缓存相关目录
│       ├─ http  # request相关目录
│       ├─ interceptors  # 拦截器相关目录
│       └─ ...

├─ .env
├─ .env.development
├─ .env.production
├─ .eslintignore
├─ .eslintrc.js
├─ .gitignore
├─ .prettierignore
├─ .prettierrc.js
├─ favicon.ico
├─ index.html
├─ LICENSE
├─ package.json
├─ pnpm-lock.yaml
├─ README.md
├─ tsconfig.json
├─ uniapp.pack.json # HBuilderX cli 打包配置
├─ uniapp.pack.json.local # 实际使用的 HBuilderX cli 打包配置
├─ unocss.config.js
└─ vite.config.ts

Git 贡献提交规范

  • 参考 vue 规范 (Angular)

    • feat 增加新功能
    • fix 修复问题/BUG
    • style 代码风格相关无影响运行结果的
    • perf 优化/性能提升
    • refactor 重构
    • revert 撤销修改
    • test 测试相关
    • docs 文档/注释
    • chore 依赖更新/脚手架配置修改等
    • workflow 工作流改进
    • ci 持续集成
    • types 类型定义文件更改
    • wip 开发中
MIT License Copyright (c) 2023 dodu Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

uniapp Vue3 Vite TypeScript 快速开发解决方案,cli 方式创建, 集成 TMUI UnoCSS(实现零 CSS 开发),集成 HBuilderX cli(APP 模式一键打包:自定义基座、云打包) 展开 收起
TypeScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
TypeScript
1
https://gitee.com/babyseeme/uniapp-starter.git
git@gitee.com:babyseeme/uniapp-starter.git
babyseeme
uniapp-starter
uniapp vue next starter
master

搜索帮助