1 Star 0 Fork 0

GGB/uniapp-ts-unocss-pinia-vue3-demo

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

uni-vue3-ts-template

uni-app Vue3 + TypeScript + Vite + Pinia + Unocss 模板项目

项目架构


  • api 接口

  • components 组件文件

  • enums 枚举

    • PageEnum 页面枚举
  • hooks hooks 函数库

  • locales 多语言

  • logics 项目初始化

  • packageDemo demo 模块

  • pages 主包

    • index 首页
    • login 登录
    • bindDevice 绑定
    • logs 操作日志
  • settings 配置文件

  • statics 静态文件

  • store 状态管理

    • index pinia
  • styles 主题样式配置

  • utils

    • uniUtil uni 工具包
  • hooks

  • types 项目用到的类型声明文件

  • uni_modules uni 库

支持小程序,H5,App

图片

Unocss

H5 微信小程序 App(iOS) App(Android)
图片 图片 图片

其它模板

Env Suggest

Node >= 14.19

pnpm 7

Registry taobao - https://registry.npmmirror.com/

Use This Template

npx degit atqq/uni-vue3-ts-template#main my-uni-vue3-ts-vite-project

Feature

Prod

Dev

GGB 扩展

使用

安装依赖

建议使用 pnpm,依赖安装速度更快

npm i -g pnpm
pnpm install

MAC M1(ARM 芯片),其它操作系统无需关注,正常运行需要手动安装 esbuild-darwin-64即可

pnpm add esbuild-darwin-64@0.15.13 -D

本地启动

微信小程序

# 构建出产物
pnpm dev:mp-weixin

Q1: 如果 dev 的时候发现报错,可以尝试删除node_modules之后再在命令行中运行pnpm install --shamefully-hoist重新安装依赖再pnpm dev:mp-weixin

详细参考文档

Q2: 如果运行白屏,有报错信息 “app.js 错误 ReferenceError: regeneratorRuntime is not defined”

参考解决方案 给微信小程序 IDE 开启增强编译选项

然后将编译结果dist/dev/mp-weixin导入微信开发者工具即可运行

点击查看 导入详细步骤

图片

图片

图片

H5

# CSR
pnpm dev:h5
# SSR
pnpm dev:h5:ssr

根据提示,打开对应地址即可访问

图片

App

Q1: 如启动到 App 侧有报错? 请更新至最新的 HBuilderX-Alpha 客户端

安装一些必要工具

需要使用 uni-app 官方提供的 HBuilderX 启动项目

Android 模拟器在 MacOSX、Windows 上都可以安装;iOS 模拟器只能在 MacOSX 上安装。

先安装相关模拟器,详细参考文档

准备就绪后,使用 HBuilderX 打开项目

iOS 模拟器运行

通过顶部菜单栏,找到运行入口

图片

选择一个目标设备,点击启动即可

图片

Android 模拟器运行

这里以夜神模拟器为例

点击查看 详细步骤

先通过 HBuilderX 修改模拟器端口为 62001

图片

打开夜神模拟器

图片

选择运行到 Android 基座

图片

选择已经打开的模拟器,点击运行即可 图片

图片

打包构建

微信小程序

pnpm build:mp-weixin

H5

# CSR
pnpm build:h5
# SSR
pnpm build:h5:ssr

App

基于 HBuilderX 参考官方文档进行进一步的操作

其它更多运行脚本 查看 package.json中的 scripts

css 预处理

已配置scssless全局变量

// vite.config.ts
export default defineConfig({
  // ......
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: '@import "@/static/styles/variables.scss";'
      },
      less: {
        additionalData: '@import "@/static/styles/variables.less";'
      }
    }
  }
})

additionalData的值是文件的路径,可以按照自己业务需求去修改,如果项目样式变量分的比较细,可以使用一个样式文件引入多个变量样式文件,然后在这里引入入口文件

别名配置

如果我们想要在import的时候 src 的路径简写成@,下面的就是配置 vite 的别名,属性类型请查看 vite 文档

  • @ 代替 ./src
  • @components代替./src/components
// vite.config.ts
export default defineConfig({
  // ......
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
      '@components': path.resolve(__dirname, './src/components')
    }
  }
})

例子:

// pages/index/index.vue
- import Hello from '../../components/hello/index.vue'
+ import Hello from '@/components/hello/index.vue'
// 或者
+ import Hello from '@components/hello/index.vue'

ts

如果是使用 ts 开发,这样还不够,ts 不会识别路径的别名,显示找不到模块的报错,这个时候需要修改 tsconfig.json 文件,纠正下路径才可以。

// tsconfig.json
{
  // ......
  "compilerOptions": {
    // ......
+    "baseUrl": "./",
+    "paths": {
+      "@/*": ["src/*"],
+      "@components/*": ["src/components/*"]
    }
  },
}

添加 baseUrlpaths 参数,就可以完美解决编辑器的报错提示了!

原子化 css

支持小程序,h5,app

MIT License Copyright (c) 2021 sugar 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-ts-unocss-pinia-vue3-demo 架子 展开 收起
README
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ggbhack/uniapp-ts-unocss-pinia-vue3-demo.git
git@gitee.com:ggbhack/uniapp-ts-unocss-pinia-vue3-demo.git
ggbhack
uniapp-ts-unocss-pinia-vue3-demo
uniapp-ts-unocss-pinia-vue3-demo
main

搜索帮助