IFLOW描述文件更新;

优化 编译配置增加动态修改manifest.json文件;
This commit is contained in:
yuantao
2025-09-29 14:27:36 +08:00
parent dda3a7d596
commit f620288c5b
4 changed files with 58 additions and 10 deletions

6
.env
View File

@@ -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

View File

@@ -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语法糖) 编写。
* 注释、结构规范应遵循项目中已有的风格。 * 注释、结构规范应遵循项目中已有的风格。

View File

@@ -1,5 +1,5 @@
{ {
"name" : "", "name" : "template",
"appid" : "", "appid" : "",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",

View File

@@ -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: {