You've already forked template-MP
IFLOW描述文件更新;
优化 编译配置增加动态修改manifest.json文件;
This commit is contained in:
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语法糖) 编写。
|
||||||
* 注释、结构规范应遵循项目中已有的风格。
|
* 注释、结构规范应遵循项目中已有的风格。
|
||||||
@@ -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