You've already forked template-MP
Compare commits
2 Commits
dda3a7d596
...
0516ab54cf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0516ab54cf | ||
|
|
f620288c5b |
6
.env
6
.env
@@ -1,2 +1,4 @@
|
|||||||
VITE_BASE_URL='' #接口地址
|
VITE_BASE_URL= #接口地址
|
||||||
VITE_ASSETSURL='https://cdn.vrupup.com/s/1598/assets/' #资源地址
|
VITE_ASSETSURL=https://cdn.vrupup.com/s/1598/assets/ #资源地址
|
||||||
|
VITE_APPID=wx9cb717d8151d8486 #小程序APPID
|
||||||
|
VITE_UNI_APPID=_UNI_8842336 #UNI-APPID
|
||||||
18
IFLOW.md
18
IFLOW.md
@@ -8,6 +8,7 @@
|
|||||||
* **Vue3**: 渐进式 JavaScript 框架,用于构建用户界面。
|
* **Vue3**: 渐进式 JavaScript 框架,用于构建用户界面。
|
||||||
* **uView-Plus**: 基于 UniApp 的 UI 组件库。
|
* **uView-Plus**: 基于 UniApp 的 UI 组件库。
|
||||||
* **z-paging**: 一个用于处理分页加载的组件库。
|
* **z-paging**: 一个用于处理分页加载的组件库。
|
||||||
|
* **Vuex**: 状态管理库。
|
||||||
|
|
||||||
## 目录结构
|
## 目录结构
|
||||||
|
|
||||||
@@ -21,13 +22,17 @@
|
|||||||
│ │ ├── common.css # codefun原子类样式
|
│ │ ├── common.css # codefun原子类样式
|
||||||
│ │ └── base.scss # 全局样式变量
|
│ │ └── base.scss # 全局样式变量
|
||||||
│ └── utils/ # 工具函数
|
│ └── utils/ # 工具函数
|
||||||
|
│ └── tool.ts # 常用工具函数
|
||||||
├── components/ # 公共组件
|
├── components/ # 公共组件
|
||||||
├── uni_modules/ # uni-app 组件
|
├── uni_modules/ # uni-app 组件
|
||||||
|
│ └── z-paging/ # 分页组件库
|
||||||
├── lib/ # 第三方库
|
├── lib/ # 第三方库
|
||||||
│ └── luch-request/ # luch-request 网络请求库
|
│ └── luch-request/ # luch-request 网络请求库
|
||||||
├── uview-plus/ # uView-Plus 组件库
|
├── uview-plus/ # uView-Plus 组件库
|
||||||
├── mixins/ # Vue 混入
|
├── mixins/ # Vue 混入
|
||||||
|
│ └── global.ts # 全局混入
|
||||||
├── store/ # 状态管理
|
├── store/ # 状态管理
|
||||||
|
│ └── index.ts # Vuex store
|
||||||
├── pages/ # 主包页面
|
├── pages/ # 主包页面
|
||||||
├── subPages/ # 分包页面
|
├── subPages/ # 分包页面
|
||||||
├── App.vue # 应用入口
|
├── App.vue # 应用入口
|
||||||
@@ -36,6 +41,7 @@
|
|||||||
├── manifest.json # 应用配置
|
├── manifest.json # 应用配置
|
||||||
├── uni.scss # 全局样式变量
|
├── uni.scss # 全局样式变量
|
||||||
├── vite.config.js # Vite 编译配置
|
├── vite.config.js # Vite 编译配置
|
||||||
|
├── .nvmdrc # Node.js 版本要求
|
||||||
└── .env # 环境变量
|
└── .env # 环境变量
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -43,7 +49,7 @@
|
|||||||
|
|
||||||
## 环境要求
|
## 环境要求
|
||||||
|
|
||||||
* Node.js (版本信息在 `.nvmdrc` 文件中指定)
|
* Node.js (版本信息在 `.nvmdrc` 文件中指定,当前为 20.0.0)
|
||||||
* npm 或 yarn
|
* npm 或 yarn
|
||||||
|
|
||||||
## 安装依赖
|
## 安装依赖
|
||||||
@@ -64,8 +70,9 @@ npm install
|
|||||||
|
|
||||||
## 样式
|
## 样式
|
||||||
|
|
||||||
* 全局样式文件位于 `common/styles/` 目录下,包括 `common.css` 和 `normal.scss`。
|
* 全局样式文件位于 `common/styles/` 目录下,包括 `common.css` 和 `base.scss`。
|
||||||
* 样式优先使用codefun原子类样式。
|
* `common.css` 提供了codefun原子类样式,用于快速布局。
|
||||||
|
* `base.scss` 提供了SCSS变量和mixins,以及常用的样式类生成器。
|
||||||
* 样式规范应遵循项目中已有的风格。
|
* 样式规范应遵循项目中已有的风格。
|
||||||
|
|
||||||
## JavaScript
|
## JavaScript
|
||||||
@@ -97,7 +104,7 @@ npm install
|
|||||||
* **提示与加载**: `alert`, `loading`, `hideLoading`
|
* **提示与加载**: `alert`, `loading`, `hideLoading`
|
||||||
* **页面跳转**: `navigateTo`, `redirectTo`, `reLaunch`, `switchTab`, `navigateBack`
|
* **页面跳转**: `navigateTo`, `redirectTo`, `reLaunch`, `switchTab`, `navigateBack`
|
||||||
* **本地存储**: `storage`, `removeStorage`, `getStorageInfo`
|
* **本地存储**: `storage`, `removeStorage`, `getStorageInfo`
|
||||||
* **其他功能**: `copy` (复制文本), `saveImageToPhotos` (保存图片), `requestPayment` (微信支付), `upload` (文件上传)
|
* **其他功能**: `copy` (复制文本), `saveImageToPhotos` (保存图片), `requestPayment` (微信支付), `upload` (文件上传), `loadFont` (加载字体)
|
||||||
|
|
||||||
## 网络请求
|
## 网络请求
|
||||||
|
|
||||||
@@ -109,7 +116,7 @@ npm install
|
|||||||
## 组件
|
## 组件
|
||||||
|
|
||||||
* 项目集成了 `uView-Plus` 和 `z-paging` 两个组件库,组件均已全局导入,可以直接使用。
|
* 项目集成了 `uView-Plus` 和 `z-paging` 两个组件库,组件均已全局导入,可以直接使用。
|
||||||
* `uView-Plus` 组件的使用方式是 `u-icon`、`u-input`、`u-textarea`。
|
* `uView-Plus` 组件已通过 `easycom` 自动导入,可以直接使用,如:`<u-button>`、`<u-icon>`。
|
||||||
* 全局组件放在 `components/` 目录下。
|
* 全局组件放在 `components/` 目录下。
|
||||||
* 页面独立组件放在页面根目录下的 `components/`。
|
* 页面独立组件放在页面根目录下的 `components/`。
|
||||||
* 每个组件应该附带 `README.MD` 文档。
|
* 每个组件应该附带 `README.MD` 文档。
|
||||||
@@ -119,4 +126,5 @@ npm install
|
|||||||
|
|
||||||
* 页面配置在 `pages.json` 中管理。
|
* 页面配置在 `pages.json` 中管理。
|
||||||
* 主包页面放在 `pages/` 目录下,分包页面放在 `subPages/` 目录下。
|
* 主包页面放在 `pages/` 目录下,分包页面放在 `subPages/` 目录下。
|
||||||
|
* 页面使用 Composition API (setup语法糖) 编写。
|
||||||
* 注释、结构规范应遵循项目中已有的风格。
|
* 注释、结构规范应遵循项目中已有的风格。
|
||||||
50
README.md
50
README.md
@@ -5,25 +5,35 @@
|
|||||||
## Ŀ¼<C4BF>ṹ
|
## Ŀ¼<C4BF>ṹ
|
||||||
|
|
||||||
```
|
```
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>api/ # <20>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> api/ # <20>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>modules/ # ģ<EFBFBD>黯 API <20><><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> modules/ # ҵ<EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>request.js # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> request.js # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>common/ # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> common/ # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
||||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>styles/ # ȫ<><C8AB><EFBFBD><EFBFBD>ʽ
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> styles/ # ȫ<><C8AB><EFBFBD><EFBFBD>ʽ
|
||||||
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>utils/ # <EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> common.css # codefunԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>components/ # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> base.scss # ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>uview-plus/ # uView-Plus <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> utils/ # <20><><EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>lib/ # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tool.ts # <20><><EFBFBD>ù<EFBFBD><EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mixins/ # Vue <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> components/ # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>pages/ # <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uni_modules/ # uni-app <20><><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>subPages/ # <20>ְ<EFBFBD>ҳ<EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> z-paging/ # <20><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>wxcomponents/ # <><CEA2>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> lib/ # <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>App.vue # Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> luch-request/ # luch-request <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>main.js # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uview-plus/ # uView-Plus <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>pages.json # ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mixins/ # Vue <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>manifest.json # Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> global.ts # ȫ<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>uni.scss # ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> store/ # ״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .env # <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> index.ts # Vuex store
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pages/ # <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> subPages/ # <20>ְ<EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> App.vue # Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> main.js # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pages.json # ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> manifest.json # Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uni.scss # ȫ<><C8AB><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> vite.config.js # Vite <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .nvmdrc # Node.js <20>汾Ҫ<E6B1BE><D2AA>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .env # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
```
|
```
|
||||||
|
|
||||||
## ʹ<>÷<EFBFBD><C3B7><EFBFBD>
|
## ʹ<>÷<EFBFBD><C3B7><EFBFBD>
|
||||||
@@ -42,7 +52,7 @@
|
|||||||
### <20><>ʽ
|
### <20><>ʽ
|
||||||
|
|
||||||
- common.css: ȫ<>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ʽ
|
- common.css: ȫ<>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||||
- normal.scss: <20><><EFBFBD>õ<EFBFBD> SCSS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
- base.scss: <20><><EFBFBD>õ<EFBFBD> SCSS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
### <20><><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD> (tool.js)
|
### <20><><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD> (tool.js)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "template",
|
||||||
"appid" : "",
|
"appid" : "",
|
||||||
"description" : "",
|
"description" : "",
|
||||||
"versionName" : "1.0.0",
|
"versionName" : "1.0.0",
|
||||||
|
|||||||
@@ -1,9 +1,47 @@
|
|||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
import uni from '@dcloudio/vite-plugin-uni'
|
import uni from '@dcloudio/vite-plugin-uni'
|
||||||
import { configDotenv } from 'dotenv'
|
import { resolve } from 'path'
|
||||||
|
import { readFileSync, writeFileSync } from 'fs'
|
||||||
|
import dotenv from 'dotenv'
|
||||||
|
|
||||||
|
// 自定义插件:替换 manifest.json 中的 appid
|
||||||
|
function replaceManifestAppid() {
|
||||||
|
return {
|
||||||
|
name: 'replace-manifest-appid',
|
||||||
|
buildStart() {
|
||||||
|
// 获取环境变量,明确指定路径为项目根目录
|
||||||
|
dotenv.config({ path: resolve(__dirname, '.env') })
|
||||||
|
const appid = process.env.VITE_APPID
|
||||||
|
const uni_appId = process.env.VITE_UNI_APPID
|
||||||
|
|
||||||
|
if (appid && uni_appId) {
|
||||||
|
// 读取 manifest.json 文件
|
||||||
|
const manifestPath = resolve(__dirname, 'manifest.json')
|
||||||
|
let manifestContent = readFileSync(manifestPath, 'utf-8')
|
||||||
|
|
||||||
|
// 解析 JSON
|
||||||
|
const manifest = JSON.parse(manifestContent)
|
||||||
|
|
||||||
|
// 替换
|
||||||
|
manifest.appid = uni_appId
|
||||||
|
if (manifest['mp-weixin']) {
|
||||||
|
manifest['mp-weixin'].appid = appid
|
||||||
|
}
|
||||||
|
|
||||||
|
// 写回文件
|
||||||
|
writeFileSync(manifestPath, JSON.stringify(manifest, null, 4))
|
||||||
|
|
||||||
|
console.log(`Manifest appid 已更新为: ${uni_appId}`)
|
||||||
|
console.log(`Manifest mp-weixin appid 已更新为: ${appid}`)
|
||||||
|
} else {
|
||||||
|
console.warn('未找到 VITE_APPID 和 VITE_UNI_APPID 环境变量,使用默认值')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [uni(), configDotenv()],
|
plugins: [replaceManifestAppid(), uni()],
|
||||||
build: {
|
build: {
|
||||||
minify: 'terser',
|
minify: 'terser',
|
||||||
terserOptions: {
|
terserOptions: {
|
||||||
|
|||||||
Reference in New Issue
Block a user