From ac90f6cb84b86c96b48d91a5f9a782c71d72af4e Mon Sep 17 00:00:00 2001
From: fmm <1442620801@qq.com>
Date: Fri, 9 Aug 2024 19:41:42 +0800
Subject: [PATCH 1/5] =?UTF-8?q?feat:=20mock-server=E6=9B=BF=E6=8D=A2vite-p?=
 =?UTF-8?q?lugin-mock?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/toolkits/pro/template/tinyvue/.env   |  2 ++
 .../tinyvue/config/vite.config.base.ts        | 22 ++++++++--------
 .../config/vite.config.preview.base.ts        | 22 ++++++++--------
 .../pro/template/tinyvue/package.json         |  6 ++++-
 .../pro/template/tinyvue/src/api/board.ts     |  9 ++++---
 .../pro/template/tinyvue/src/api/form.ts      |  6 ++---
 .../template/tinyvue/src/api/interceptor.ts   |  1 +
 .../pro/template/tinyvue/src/api/list.ts      |  2 +-
 .../pro/template/tinyvue/src/api/profile.ts   |  2 +-
 .../pro/template/tinyvue/src/api/user.ts      |  2 +-
 .../toolkits/pro/template/tinyvue/src/main.ts |  6 ++---
 .../pro/template/tinyvue/src/mock/board.ts    |  6 ++---
 .../pro/template/tinyvue/src/mock/index.ts    | 26 ++++++++++++++++---
 .../pro/template/tinyvue/src/mock/list.ts     |  8 +++---
 .../pro/template/tinyvue/src/mock/profile.ts  |  6 ++---
 .../pro/template/tinyvue/src/mock/user.ts     | 12 ++++-----
 .../template/tinyvue/src/mockProdServer.ts    | 12 ++++-----
 .../tinyvue/src/views/form/step/mock.ts       |  6 ++---
 .../pro/template/tinyvue/tsconfig.json        |  6 ++++-
 19 files changed, 97 insertions(+), 65 deletions(-)

diff --git a/packages/toolkits/pro/template/tinyvue/.env b/packages/toolkits/pro/template/tinyvue/.env
index 9de4842e..3bf070a9 100644
--- a/packages/toolkits/pro/template/tinyvue/.env
+++ b/packages/toolkits/pro/template/tinyvue/.env
@@ -3,3 +3,5 @@ VITE_BASE_API=/api
 VITE_SERVER_HOST= http://127.0.0.1:3000
 VITE_USE_MOCK= false
 VITE_MOCK_IGNORE= /api/user/userInfo,/api/user/login,/api/user/register,/api/employee/getEmployee
+
+VITE_MOCK_SERVER_HOST=http://127.0.0.1:8848
diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts
index f1dce32f..7357bcab 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts
@@ -3,7 +3,7 @@ import { defineConfig } from 'vite';
 import vue from '@vitejs/plugin-vue';
 import vueJsx from '@vitejs/plugin-vue-jsx';
 import svgLoader from 'vite-svg-loader';
-import { viteMockServe } from 'vite-plugin-mock';
+// import { viteMockServe } from 'vite-plugin-mock';
 
 const useMock = !! process.env.VITE_USE_MOCK
 
@@ -12,16 +12,16 @@ const config = {
     vue(),
     vueJsx(),
     svgLoader({ svgoConfig: {} }),
-    viteMockServe({
-      mockPath: '../src/mock', // mock文件地址
-      localEnabled:useMock, // 开发打包开关
-      prodEnabled:true, // 生产打包开关 // 这样可以控制关闭mock的时候不让mock打包到最终代码内
-      injectCode: ` import { setupProdMockServer } from '../src/mockProdServer'; setupProdMockServer(); `,
-      logger: true, // 是否在控制台显示请求日志
-      supportTs: false, // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
-      watchFiles:true,
-      injectFile: resolve('../src/main.ts'),
-    })
+    // viteMockServe({
+    //   mockPath: '../src/mock', // mock文件地址
+    //   localEnabled:useMock, // 开发打包开关
+    //   prodEnabled:true, // 生产打包开关 // 这样可以控制关闭mock的时候不让mock打包到最终代码内
+    //   injectCode: ` import { setupProdMockServer } from '../src/mockProdServer'; setupProdMockServer(); `,
+    //   logger: true, // 是否在控制台显示请求日志
+    //   supportTs: false, // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
+    //   watchFiles:true,
+    //   injectFile: resolve('../src/main.ts'),
+    // })
   ],
   build: {
     outDir: resolve(__dirname, '../dist'),
diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts
index b815ab17..e9a5e873 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts
@@ -3,23 +3,23 @@ import { defineConfig } from 'vite';
 import vue from '@vitejs/plugin-vue';
 import vueJsx from '@vitejs/plugin-vue-jsx';
 import svgLoader from 'vite-svg-loader';
-import { viteMockServe } from 'vite-plugin-mock';
+// import { viteMockServe } from 'vite-plugin-mock';
 
 export default defineConfig({
   plugins: [
     vue(),
     vueJsx(),
     svgLoader({ svgoConfig: {} }),
-    viteMockServe({
-      // 更多配置见最下方
-      mockPath: '../src/mock', // mock文件地址
-      localEnabled: true, // 开发打包开关
-      prodEnabled: true, // 生产打包开关 // 这样可以控制关闭mock的时候不让mock打包到最终代码内
-      injectCode: ` import { setupProdMockServer } from '../src/mockProdServer'; setupProdMockServer(); `,
-      logger: false, // 是否在控制台显示请求日志
-      supportTs: false, // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
-      injectFile: resolve('../src/main.ts'),
-    }),
+    // viteMockServe({
+    //   // 更多配置见最下方
+    //   mockPath: '../src/mock', // mock文件地址
+    //   localEnabled: true, // 开发打包开关
+    //   prodEnabled: true, // 生产打包开关 // 这样可以控制关闭mock的时候不让mock打包到最终代码内
+    //   injectCode: ` import { setupProdMockServer } from '../src/mockProdServer'; setupProdMockServer(); `,
+    //   logger: false, // 是否在控制台显示请求日志
+    //   supportTs: false, // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
+    //   injectFile: resolve('../src/main.ts'),
+    // }),
   ],
   build: {
     outDir: resolve(__dirname, '../dist/vue-pro/pages'),
diff --git a/packages/toolkits/pro/template/tinyvue/package.json b/packages/toolkits/pro/template/tinyvue/package.json
index b5990ca4..33004851 100644
--- a/packages/toolkits/pro/template/tinyvue/package.json
+++ b/packages/toolkits/pro/template/tinyvue/package.json
@@ -10,8 +10,10 @@
     "build": "vite build --config ./config/vite.config.prod.ts",
     "report": "cross-env REPORT=true npm run build",
     "lint-staged": "npx lint-staged",
-    "prepare": "git init && husky install"
+    "prepare": "git init && husky install",
+    "mock": "ts-node ./src/mock/index.ts"
   },
+  "type": "module",
   "lint-staged": {
     "*.{js,ts,jsx,tsx}": [
       "prettier --write",
@@ -28,9 +30,11 @@
     ]
   },
   "dependencies": {
+    "@gaonengwww/mock-server": "^1.0.2",
     "@opentiny/hwc-client": "^0.0.14",
     "@opentiny/vue": "^3.11.1",
     "@types/mockjs": "^1.0.9",
+    "@types/node": "^22.1.0",
     "@vueuse/core": "^10.5.0",
     "@vueuse/head": "^2.0.0",
     "axios": "^1.6.0",
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/board.ts b/packages/toolkits/pro/template/tinyvue/src/api/board.ts
index 88fd4c49..8211a599 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/board.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/board.ts
@@ -1,19 +1,20 @@
 import axios from 'axios';
 
+axios.defaults.timeout = 5000;
 // 获取select的option
 export function getUserData() {
-  return axios.get('/api/user/getdata');
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/user/getdata`);
 }
 
 export function getUserPractic() {
-  return axios.get('/api/user/getrpractic');
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}http://127.0.0.1:8848/api/user/getrpractic`);
 }
 
 export function getUserTrain() {
-  return axios.get('/api/user/getrtrain');
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}http://127.0.0.1:8848/api/user/getrtrain`);
 }
 
 // 切换数据源
 export function getUserChange(data: string) {
-  return axios.post('/api/user/getselect', data as any);
+  return axios.post(`${import.meta.env.VITE_MOCK_SERVER_HOST}http://127.0.0.1:8848/api/user/getselect`, data as any);
 }
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/form.ts b/packages/toolkits/pro/template/tinyvue/src/api/form.ts
index 9f1eed04..be1b9bc3 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/form.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/form.ts
@@ -22,15 +22,15 @@ export type UnitStepModel = PersonalModel & CompanyInfoModel;
 
 // 获取base表单的初始数据选项
 export function getBaseData() {
-  return axios.get('/api/base/getdata');
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/base/getdata`);
 }
 
 // 表单的数据提交&&校验
 export function submitStepForm(data: UnitStepModel) {
-  return axios.post('/api/channel-form/submit', { data });
+  return axios.post(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/channel-form/submit`, { data });
 }
 
 // 获取step表单的初始数据选项
 export function getStepData() {
-  return axios.get('/api/step/getdata');
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/step/getdata`);
 }
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts b/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
index 7601da09..98668703 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
@@ -49,6 +49,7 @@ axios.interceptors.response.use(
     return res;
   },
   (error) => {
+    console.log(error)
     const { status, data } = error.response;
     if (status === 401) {
       clearToken();
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/list.ts b/packages/toolkits/pro/template/tinyvue/src/api/list.ts
index 2b714115..b82c4bb0 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/list.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/list.ts
@@ -7,7 +7,7 @@ export interface QueryTaskParmas {
 }
 
 export function queryEmployeeList(params: QueryTaskParmas) {
-  return axios.post('/api/employee/getEmployee', params);
+  return axios.post(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/employee/getEmployee`, params);
 }
 export function deleteEmployee(id: string) {
   return axios.delete(`/api/employee/delete?id=${id}`);
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/profile.ts b/packages/toolkits/pro/template/tinyvue/src/api/profile.ts
index 5feef072..bdf3aedf 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/profile.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/profile.ts
@@ -2,5 +2,5 @@ import axios from 'axios';
 
 // 获取detail表单的初始数据选项
 export function getDetailData() {
-  return axios.get('/api/detail/getdata');
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/detail/getdata`);
 }
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/user.ts b/packages/toolkits/pro/template/tinyvue/src/api/user.ts
index 8d502da5..7de89ba5 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/user.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/user.ts
@@ -68,7 +68,7 @@ export function updateUserInfo(data: any) {
 }
 
 export function getUserData(data?: UserData) {
-  return axios.post<UserRes>('/api/user/data', data);
+  return axios.post<UserRes>(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/user/data`, data);
 }
 
 export function registerUser(data: any) {
diff --git a/packages/toolkits/pro/template/tinyvue/src/main.ts b/packages/toolkits/pro/template/tinyvue/src/main.ts
index 9648d873..f516cbae 100644
--- a/packages/toolkits/pro/template/tinyvue/src/main.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/main.ts
@@ -6,15 +6,15 @@ import router from './router';
 import store from './store';
 import i18n from './locale';
 import directive from './directive';
-import { setupProdMockServer } from './mockProdServer';
-import './mock';
+// import { setupProdMockServer } from './mockProdServer';
+// import './mock';
 import App from './App.vue';
 import '@/api/interceptor';
 import '@/assets/style/global.less';
 import config from '../hwc-exports.json';
 import chinaMap from './assets/chaina.json';
 
-if(import.meta.env.VITE_USE_MOCK) setupProdMockServer();
+// if(import.meta.env.VITE_USE_MOCK) setupProdMockServer();
 
 registerMap('china', chinaMap as any);
 const app = createApp(App);
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/board.ts b/packages/toolkits/pro/template/tinyvue/src/mock/board.ts
index c11ffadd..6e3f2e38 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/board.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/board.ts
@@ -1,6 +1,6 @@
-import { MockMethod } from 'vite-plugin-mock';
+// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
-import { successResponseWrap } from '@/utils/setup-mock';
+import { successResponseWrap } from '../utils/setup-mock';
 
 const initData = Mock.mock({
   options: [
@@ -95,4 +95,4 @@ export default [
       return result;
     },
   },
-] as MockMethod[];
+] as any;
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/index.ts b/packages/toolkits/pro/template/tinyvue/src/mock/index.ts
index 57b5ee67..a033a493 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/index.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/index.ts
@@ -1,9 +1,29 @@
-import user from './user';
+import {createMockServer} from '@gaonengwww/mock-server';
+// import user from './user';
 import list from './list';
 import froms from '../views/form/step/mock';
 import profile from './profile';
 import board from './board';
 
-const index = [...user, ...list, ...froms, ...profile, ...board];
+// const index = [...user, ...list, ...froms, ...profile, ...board];
+//
+// export default index;
+
+let mockData = [] as any
+for(let i=0; i<board.length; i+=1){
+  mockData.push(board[i])
+}
+for(let i=0; i<list.length; i+=1){
+  mockData.push(list[i])
+}
+for(let i=0; i<froms.length; i+=1){
+  mockData.push(froms[i])
+}
+for(let i=0; i<profile.length; i+=1){
+  mockData.push(profile[i])
+}
+
+createMockServer({
+  mocks: mockData,
+})
 
-export default index;
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/list.ts b/packages/toolkits/pro/template/tinyvue/src/mock/list.ts
index ed2730cd..83c075ca 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/list.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/list.ts
@@ -1,6 +1,6 @@
-import { MockMethod } from 'vite-plugin-mock';
+// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
-import { successResponseWrap } from '@/utils/setup-mock';
+import { successResponseWrap } from '../utils/setup-mock';
 
 const taskList = Mock.mock({
   'list|60': [
@@ -31,7 +31,7 @@ export default [
   {
     url: '/api/employee/getEmployee',
     method: 'post',
-    response: (params) => {
+    response: (params: { body: any; }) => {
       const { pageIndex = 1, pageSize = 10 } = JSON.parse(
         JSON.stringify(params.body)
       );
@@ -49,4 +49,4 @@ export default [
       return successResponseWrap(data);
     },
   },
-] as MockMethod[];
+] as any;
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts b/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts
index 2227ba97..acf9ec21 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts
@@ -1,6 +1,6 @@
-import { MockMethod } from 'vite-plugin-mock';
+// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
-import { successResponseWrap } from '@/utils/setup-mock';
+import { successResponseWrap } from '../utils/setup-mock';
 
 const initData = Mock.mock({
   Project: [
@@ -62,4 +62,4 @@ export default [
       return successResponseWrap(initData);
     },
   },
-] as MockMethod[];
+] as any;
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/user.ts b/packages/toolkits/pro/template/tinyvue/src/mock/user.ts
index 9aeb4573..632a1953 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/user.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/user.ts
@@ -1,10 +1,10 @@
-import { MockMethod } from 'vite-plugin-mock';
+// import {MockMethod} from 'vite-plugin-mock';
 import {
   successResponseWrap,
   failResponseWrap,
   initData,
-} from '@/utils/setup-mock';
-import { isLogin } from '@/utils/auth';
+} from '../utils/setup-mock';
+import { isLogin } from '../utils/auth';
 
 const positive = JSON.parse(JSON.stringify(initData.tableData));
 const negative = JSON.parse(JSON.stringify(initData.tableData.reverse()));
@@ -15,7 +15,7 @@ export default [
   {
     url: '/api/user/register',
     method: 'post',
-    response: (params) => {
+    response: (params: { body: any; }) => {
       localStorage.setItem('registerUser', JSON.stringify(params.body));
       return successResponseWrap({ ...userInfo, role: 'admin' });
     },
@@ -57,7 +57,7 @@ export default [
   {
     url: '/api/user/login',
     method: 'post',
-    response: (params) => {
+    response: (params: { body: any; }) => {
       const registerUser = JSON.parse(
         localStorage.getItem('registerUser') || '{}'
       );
@@ -145,4 +145,4 @@ export default [
       return successResponseWrap(initData);
     },
   },
-] as MockMethod[];
+] as any;
diff --git a/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts b/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts
index 6d3a2750..eddb3b10 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts
@@ -1,7 +1,7 @@
 //  mockProdServer.ts
-import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer';
-import index from './mock/index';
-
-export function setupProdMockServer() {
-  createProdMockServer([...index]);
-}
+// import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer';
+// import index from './mock/index';
+//
+// export function setupProdMockServer() {
+//   createProdMockServer([...index]);
+// }
diff --git a/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts b/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts
index 2973171c..0449eeb5 100644
--- a/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts
@@ -1,6 +1,6 @@
-import { MockMethod } from 'vite-plugin-mock';
+// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
-import { successResponseWrap } from '@/utils/setup-mock';
+import { successResponseWrap } from '../../../utils/setup-mock';
 
 const initBase = Mock.mock({
   Project: [
@@ -116,4 +116,4 @@ export default [
       return successResponseWrap('ok');
     },
   },
-] as MockMethod[];
+] as any;
diff --git a/packages/toolkits/pro/template/tinyvue/tsconfig.json b/packages/toolkits/pro/template/tinyvue/tsconfig.json
index c031db91..7747de63 100644
--- a/packages/toolkits/pro/template/tinyvue/tsconfig.json
+++ b/packages/toolkits/pro/template/tinyvue/tsconfig.json
@@ -17,5 +17,9 @@
     "types": ["vite/client"] /* vite ts支持 */
   },
   "include": ["src/**/*", "src/**/*.vue"],
-  "exclude": ["node_modules"]
+  "exclude": ["node_modules"],
+  "ts-node": {
+    "esm": true,
+    "experimentalSpecifierResolution": "node"
+  }
 }

From 4957afd538714b6b3e0c211603a2873ef4dd1aab Mon Sep 17 00:00:00 2001
From: fmm <1442620801@qq.com>
Date: Fri, 9 Aug 2024 20:36:55 +0800
Subject: [PATCH 2/5] =?UTF-8?q?fix:=20ts-node=E5=90=AF=E5=8A=A8=E5=86=B2?=
 =?UTF-8?q?=E7=AA=81=E8=A7=A3=E5=86=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/toolkits/pro/template/tinyvue/package.json  | 1 -
 packages/toolkits/pro/template/tinyvue/tsconfig.json | 5 ++++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/packages/toolkits/pro/template/tinyvue/package.json b/packages/toolkits/pro/template/tinyvue/package.json
index 33004851..e0c34810 100644
--- a/packages/toolkits/pro/template/tinyvue/package.json
+++ b/packages/toolkits/pro/template/tinyvue/package.json
@@ -13,7 +13,6 @@
     "prepare": "git init && husky install",
     "mock": "ts-node ./src/mock/index.ts"
   },
-  "type": "module",
   "lint-staged": {
     "*.{js,ts,jsx,tsx}": [
       "prettier --write",
diff --git a/packages/toolkits/pro/template/tinyvue/tsconfig.json b/packages/toolkits/pro/template/tinyvue/tsconfig.json
index 7747de63..252069d7 100644
--- a/packages/toolkits/pro/template/tinyvue/tsconfig.json
+++ b/packages/toolkits/pro/template/tinyvue/tsconfig.json
@@ -20,6 +20,9 @@
   "exclude": ["node_modules"],
   "ts-node": {
     "esm": true,
-    "experimentalSpecifierResolution": "node"
+    "experimentalSpecifierResolution": "node",
+    "compilerOptions": {
+      "module": "commonjs"
+    }
   }
 }

From 1e5ca3c56a00584de5461f320adb67b8fc5ef05b Mon Sep 17 00:00:00 2001
From: fmm <1442620801@qq.com>
Date: Fri, 9 Aug 2024 22:53:01 +0800
Subject: [PATCH 3/5] =?UTF-8?q?fix:=20mock-server=E9=97=AE=E9=A2=98?=
 =?UTF-8?q?=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/toolkits/pro/template/tinyvue/.env              | 3 ++-
 .../pro/template/tinyvue/config/vite.config.dev.ts       | 5 +++++
 packages/toolkits/pro/template/tinyvue/package.json      | 9 +++++++--
 packages/toolkits/pro/template/tinyvue/src/api/board.ts  | 6 +++---
 .../toolkits/pro/template/tinyvue/src/api/interceptor.ts | 1 -
 packages/toolkits/pro/template/tinyvue/tsconfig.json     | 2 +-
 6 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/packages/toolkits/pro/template/tinyvue/.env b/packages/toolkits/pro/template/tinyvue/.env
index 3bf070a9..27a9a3e9 100644
--- a/packages/toolkits/pro/template/tinyvue/.env
+++ b/packages/toolkits/pro/template/tinyvue/.env
@@ -1,7 +1,8 @@
 VITE_CONTEXT=/vue-pro/
 VITE_BASE_API=/api
 VITE_SERVER_HOST= http://127.0.0.1:3000
+VITE_MOCK_HOST= http://127.0.0.1:8848
 VITE_USE_MOCK= false
 VITE_MOCK_IGNORE= /api/user/userInfo,/api/user/login,/api/user/register,/api/employee/getEmployee
 
-VITE_MOCK_SERVER_HOST=http://127.0.0.1:8848
+VITE_MOCK_SERVER_HOST=/mock
diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.dev.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.dev.ts
index b18cbd3a..f6b5f207 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.dev.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.dev.ts
@@ -13,6 +13,11 @@ const proxyConfig = {
         ''
       ),
   },
+  [loadEnv('', process.cwd()).VITE_MOCK_SERVER_HOST]: {
+    target: loadEnv('', process.cwd()).VITE_MOCK_HOST,
+    changeOrigin: true,
+    rewrite: (path:string) => path.replace(/^\/mock/, '')
+  }
 };
 export default mergeConfig(
   {
diff --git a/packages/toolkits/pro/template/tinyvue/package.json b/packages/toolkits/pro/template/tinyvue/package.json
index e0c34810..7a3eef55 100644
--- a/packages/toolkits/pro/template/tinyvue/package.json
+++ b/packages/toolkits/pro/template/tinyvue/package.json
@@ -11,7 +11,7 @@
     "report": "cross-env REPORT=true npm run build",
     "lint-staged": "npx lint-staged",
     "prepare": "git init && husky install",
-    "mock": "ts-node ./src/mock/index.ts"
+    "mock": "tsx ./src/mock/index.ts"
   },
   "lint-staged": {
     "*.{js,ts,jsx,tsx}": [
@@ -29,9 +29,12 @@
     ]
   },
   "dependencies": {
-    "@gaonengwww/mock-server": "^1.0.2",
+    "@gaonengwww/mock-server": "^1.0.5",
     "@opentiny/hwc-client": "^0.0.14",
     "@opentiny/vue": "^3.11.1",
+    "@opentiny/vue-icon": "^3.17.0",
+    "@opentiny/vue-locale": "^3.17.0",
+    "@opentiny/vue-theme": "^3.17.5",
     "@types/mockjs": "^1.0.9",
     "@types/node": "^22.1.0",
     "@vueuse/core": "^10.5.0",
@@ -80,6 +83,8 @@
     "stylelint-config-rational-order": "^0.1.2",
     "stylelint-config-standard": "^20.0.0",
     "stylelint-order": "^4.1.0",
+    "ts-node": "^10.9.2",
+    "tsx": "^4.17.0",
     "typescript": "^4.5.5",
     "unplugin-vue-components": "^0.17.21",
     "vite": "^4.4.9",
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/board.ts b/packages/toolkits/pro/template/tinyvue/src/api/board.ts
index 8211a599..ba116ece 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/board.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/board.ts
@@ -7,14 +7,14 @@ export function getUserData() {
 }
 
 export function getUserPractic() {
-  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}http://127.0.0.1:8848/api/user/getrpractic`);
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/user/getrpractic`);
 }
 
 export function getUserTrain() {
-  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}http://127.0.0.1:8848/api/user/getrtrain`);
+  return axios.get(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/user/getrtrain`);
 }
 
 // 切换数据源
 export function getUserChange(data: string) {
-  return axios.post(`${import.meta.env.VITE_MOCK_SERVER_HOST}http://127.0.0.1:8848/api/user/getselect`, data as any);
+  return axios.post(`${import.meta.env.VITE_MOCK_SERVER_HOST}/api/user/getselect`, data as any);
 }
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts b/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
index 98668703..7601da09 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
@@ -49,7 +49,6 @@ axios.interceptors.response.use(
     return res;
   },
   (error) => {
-    console.log(error)
     const { status, data } = error.response;
     if (status === 401) {
       clearToken();
diff --git a/packages/toolkits/pro/template/tinyvue/tsconfig.json b/packages/toolkits/pro/template/tinyvue/tsconfig.json
index 252069d7..bb23df7e 100644
--- a/packages/toolkits/pro/template/tinyvue/tsconfig.json
+++ b/packages/toolkits/pro/template/tinyvue/tsconfig.json
@@ -14,7 +14,7 @@
     },
     "lib": ["es2020", "dom"],
     "skipLibCheck": true, /* 跳过类型检查所有.d.ts文件 */
-    "types": ["vite/client"] /* vite ts支持 */
+    "types": ["vite/client",] /* vite ts支持 */
   },
   "include": ["src/**/*", "src/**/*.vue"],
   "exclude": ["node_modules"],

From e4ecf8f92cd6ed22896d1dee056e5da4de803c45 Mon Sep 17 00:00:00 2001
From: fmm <1442620801@qq.com>
Date: Sat, 10 Aug 2024 18:25:17 +0800
Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Ewebpack=E9=85=8D?=
 =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6&=E6=96=B0=E5=A2=9Ehttp-server?=
 =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6&vite=E6=89=93=E5=8C=85?=
 =?UTF-8?q?=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../pro/template/tinyvue/babel.config.js      |   4 +-
 .../tinyvue/config/vite.config.prod.ts        |   6 +-
 .../toolkits/pro/template/tinyvue/dev.env     |   8 +
 .../template/tinyvue/http.server.config.js    |  19 ++
 .../toolkits/pro/template/tinyvue/index.html  |   2 +-
 .../pro/template/tinyvue/package.json         |  28 ++-
 .../template/tinyvue/src/api/interceptor.ts   |   7 +-
 .../pro/template/tinyvue/src/router/index.ts  |   2 +
 .../tinyvue/src/store/modules/user/index.ts   |   8 +-
 .../pro/template/tinyvue/tsconfig.json        |  10 +-
 .../pro/template/tinyvue/webpack.config.js    | 172 ++++++++++++++++++
 11 files changed, 248 insertions(+), 18 deletions(-)
 create mode 100644 packages/toolkits/pro/template/tinyvue/dev.env
 create mode 100644 packages/toolkits/pro/template/tinyvue/http.server.config.js
 create mode 100644 packages/toolkits/pro/template/tinyvue/webpack.config.js

diff --git a/packages/toolkits/pro/template/tinyvue/babel.config.js b/packages/toolkits/pro/template/tinyvue/babel.config.js
index dd6f53ce..3f7f17c9 100644
--- a/packages/toolkits/pro/template/tinyvue/babel.config.js
+++ b/packages/toolkits/pro/template/tinyvue/babel.config.js
@@ -1,3 +1,5 @@
 module.exports = {
-  plugins: ['@vue/babel-plugin-jsx'],
+  plugins: [
+    '@vue/babel-plugin-jsx',
+  ]
 };
diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts
index a5ddb3af..4fc0e2e9 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts
@@ -1,12 +1,12 @@
 import { mergeConfig } from 'vite';
-import baseConig from './vite.config.base';
+import baseConfig from './vite.config.base';
 import configCompressPlugin from './plugin/compress';
 import configVisualizerPlugin from './plugin/visualizer';
 
 export default mergeConfig(
   {
     mode: 'production',
-    mock: true,
+    // mock: true,
     plugins: [configCompressPlugin('gzip'), configVisualizerPlugin()],
     build: {
       rollupOptions: {
@@ -19,5 +19,5 @@ export default mergeConfig(
       chunkSizeWarningLimit: 2000,
     },
   },
-  baseConig
+  baseConfig
 );
diff --git a/packages/toolkits/pro/template/tinyvue/dev.env b/packages/toolkits/pro/template/tinyvue/dev.env
new file mode 100644
index 00000000..27a9a3e9
--- /dev/null
+++ b/packages/toolkits/pro/template/tinyvue/dev.env
@@ -0,0 +1,8 @@
+VITE_CONTEXT=/vue-pro/
+VITE_BASE_API=/api
+VITE_SERVER_HOST= http://127.0.0.1:3000
+VITE_MOCK_HOST= http://127.0.0.1:8848
+VITE_USE_MOCK= false
+VITE_MOCK_IGNORE= /api/user/userInfo,/api/user/login,/api/user/register,/api/employee/getEmployee
+
+VITE_MOCK_SERVER_HOST=/mock
diff --git a/packages/toolkits/pro/template/tinyvue/http.server.config.js b/packages/toolkits/pro/template/tinyvue/http.server.config.js
new file mode 100644
index 00000000..ced9fcf9
--- /dev/null
+++ b/packages/toolkits/pro/template/tinyvue/http.server.config.js
@@ -0,0 +1,19 @@
+// server-config.js
+const { createProxyMiddleware } = require('http-proxy-middleware');
+
+module.exports = function(app) {
+  app.use('/api', createProxyMiddleware({
+    target: 'http://http://127.0.0.1:3000', // 目标服务器地址
+    changeOrigin: true, // 改变源地址,使目标服务器认为请求来自代理服务器
+    pathRewrite: {
+      '^/api': '', // 重写请求路径
+    },
+  }));
+  app.use('/mock', createProxyMiddleware({
+    target: 'http://127.0.0.1:8848', // 目标服务器地址
+    changeOrigin: true, // 改变源地址,使目标服务器认为请求来自代理服务器
+    pathRewrite: {
+      '^/mock': '', // 重写请求路径
+    },
+  }));
+};
diff --git a/packages/toolkits/pro/template/tinyvue/index.html b/packages/toolkits/pro/template/tinyvue/index.html
index 0b1d5c7f..3066b49c 100644
--- a/packages/toolkits/pro/template/tinyvue/index.html
+++ b/packages/toolkits/pro/template/tinyvue/index.html
@@ -8,6 +8,6 @@
   </head>
   <body>
     <div id="app"></div>
-    <script type="module" src="./src/main.ts"></script>
+     <script type="module" src="./src/main.ts"></script>
   </body>
 </html>
diff --git a/packages/toolkits/pro/template/tinyvue/package.json b/packages/toolkits/pro/template/tinyvue/package.json
index 7a3eef55..32b46d55 100644
--- a/packages/toolkits/pro/template/tinyvue/package.json
+++ b/packages/toolkits/pro/template/tinyvue/package.json
@@ -8,6 +8,8 @@
   "scripts": {
     "start": "vite --config ./config/vite.config.dev.ts --port 3031",
     "build": "vite build --config ./config/vite.config.prod.ts",
+    "build:wp": "webpack --config webpack.config.js",
+    "dev:wp": "webpack-dev-server --progress --config webpack.config.js",
     "report": "cross-env REPORT=true npm run build",
     "lint-staged": "npx lint-staged",
     "prepare": "git init && husky install",
@@ -29,6 +31,7 @@
     ]
   },
   "dependencies": {
+    "@babel/core": "^7.25.2",
     "@gaonengwww/mock-server": "^1.0.5",
     "@opentiny/hwc-client": "^0.0.14",
     "@opentiny/vue": "^3.11.1",
@@ -44,17 +47,21 @@
     "echarts": "~5.4.3",
     "echarts4": "npm:echarts@4.9.0",
     "fp-ts": "2.16.1",
+    "http-proxy-middleware": "^3.0.0",
     "mitt": "^3.0.1",
     "moment": "^2.29.4",
     "nprogress": "^1.0.0-1",
     "pinia": "2.1.7",
     "query-string": "^8.1.0",
+    "style-resources-loader": "^1.5.0",
     "vue": "^3.3.7",
     "vue-eslint-parser": "^9.3.2",
     "vue-i18n": "^9.6.2",
     "vue-router": "^4.2.5"
   },
   "devDependencies": {
+    "@babel/preset-env": "^7.25.3",
+    "@babel/preset-typescript": "^7.24.7",
     "@commitlint/cli": "^11.0.0",
     "@commitlint/config-conventional": "^12.0.1",
     "@types/lodash": "^4.14.177",
@@ -63,8 +70,14 @@
     "@typescript-eslint/parser": "^5.10.0",
     "@vitejs/plugin-vue": "^4.3.4",
     "@vitejs/plugin-vue-jsx": "^3.0.2",
+    "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
     "@vue/babel-plugin-jsx": "^1.1.5",
+    "@vue/babel-preset-jsx": "^1.4.0",
+    "babel-loader": "^9.1.3",
+    "core-js": "3",
     "cross-env": "^7.0.3",
+    "css-loader": "^7.1.2",
+    "dotenv": "^16.4.5",
     "eslint": "^7.2.0",
     "eslint-config-airbnb-base": "^14.2.1",
     "eslint-config-prettier": "^8.3.0",
@@ -72,20 +85,25 @@
     "eslint-plugin-import": "^2.22.1",
     "eslint-plugin-prettier": "^3.3.1",
     "eslint-plugin-vue": "^8.3.0",
+    "html-webpack-plugin": "^5.6.0",
     "husky": "^7.0.4",
-    "less": "^4.1.2",
+    "import-meta-loader": "^1.1.0",
+    "less": "^4.2.0",
+    "less-loader": "^12.2.0",
     "lint-staged": "^11.2.6",
     "mockjs": "^1.1.0",
     "prettier": "^3.0.3",
     "rollup-plugin-visualizer": "^5.9.2",
+    "style-loader": "^4.0.0",
     "stylelint": "^13.8.0",
     "stylelint-config-prettier": "^8.0.2",
     "stylelint-config-rational-order": "^0.1.2",
     "stylelint-config-standard": "^20.0.0",
     "stylelint-order": "^4.1.0",
+    "ts-loader": "^9.5.1",
     "ts-node": "^10.9.2",
     "tsx": "^4.17.0",
-    "typescript": "^4.5.5",
+    "typescript": "^4.9.5",
     "unplugin-vue-components": "^0.17.21",
     "vite": "^4.4.9",
     "vite-plugin-compression": "^0.5.1",
@@ -94,7 +112,11 @@
     "vite-plugin-mock": "^2.9.6",
     "vite-plugin-style-import": "2.0.0",
     "vite-svg-loader": "^4.0.0",
-    "vue-tsc": "^1.8.22"
+    "vue-loader": "^17.4.2",
+    "vue-tsc": "^1.8.22",
+    "webpack": "^5.65.0",
+    "webpack-cli": "^4.9.1",
+    "webpack-dev-server": "^4.7.1"
   },
   "engines": {
     "node": ">=14.0.0"
diff --git a/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts b/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
index 7601da09..02d84570 100644
--- a/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/api/interceptor.ts
@@ -11,7 +11,7 @@ export interface HttpResponse<T = unknown> {
 }
 
 const { VITE_API_BASE_URL, VITE_BASE_API, VITE_MOCK_IGNORE } =
-  import.meta.env || {};
+  import.meta.env || {VITE_BASE_API:'', VITE_MOCK_IGNORE: ''};
 
 if (VITE_API_BASE_URL) {
   axios.defaults.baseURL = VITE_API_BASE_URL;
@@ -19,7 +19,7 @@ if (VITE_API_BASE_URL) {
 
 const ignoreMockApiList = VITE_MOCK_IGNORE?.split(',') || [];
 axios.interceptors.request.use(
-  (config: AxiosRequestConfig) => {
+  (config: AxiosRequestConfig): any => {
     const isProxy = ignoreMockApiList.includes(config.url);
     if (isProxy) {
       config.url = config.url?.replace(VITE_BASE_API, '/api/v1');
@@ -33,7 +33,7 @@ axios.interceptors.request.use(
       config.headers.Authorization = `Bearer ${token}`;
     }
 
-    config.headers = { ...config.headers };
+     config.headers = { ...config.headers };
 
     return config;
   },
@@ -49,6 +49,7 @@ axios.interceptors.response.use(
     return res;
   },
   (error) => {
+    console.log(error)
     const { status, data } = error.response;
     if (status === 401) {
       clearToken();
diff --git a/packages/toolkits/pro/template/tinyvue/src/router/index.ts b/packages/toolkits/pro/template/tinyvue/src/router/index.ts
index 3c5505e3..90ed0b13 100644
--- a/packages/toolkits/pro/template/tinyvue/src/router/index.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/router/index.ts
@@ -7,6 +7,8 @@ import createRouteGuard from './guard';
 
 NProgress.configure({ showSpinner: false }); // NProgress Configuration
 
+
+
 const router = createRouter({
   history: createWebHistory(),
   routes: [
diff --git a/packages/toolkits/pro/template/tinyvue/src/store/modules/user/index.ts b/packages/toolkits/pro/template/tinyvue/src/store/modules/user/index.ts
index 3847507c..6b9d02a6 100644
--- a/packages/toolkits/pro/template/tinyvue/src/store/modules/user/index.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/store/modules/user/index.ts
@@ -89,10 +89,10 @@ const useUserStore = defineStore('user', {
           id: userRes.data.id,
           name:userRes.data.name,
           email:userRes.data.email,
-          role:userRes.data.role[0].name,
+          role:'',
           department: userRes.data.department,
           employeeType: userRes.data.employeeType,
-          job: userRes.data.role[0].name,
+          job: '',
           probationStart: userRes.data.probationStart,
           probationEnd: userRes.data.probationEnd,
           probationDuration: userRes.data.probationDuration,
@@ -101,6 +101,10 @@ const useUserStore = defineStore('user', {
           address: userRes.data.address,
           status: userRes.data.status,
         }
+        if(userRes.data.role){
+          userInfo.role = userRes.data.role[0].name;
+          userInfo.job = userRes.data.role[0].name;
+        }
         this.setInfo(userInfo);
       } catch (err) {
         clearToken();
diff --git a/packages/toolkits/pro/template/tinyvue/tsconfig.json b/packages/toolkits/pro/template/tinyvue/tsconfig.json
index bb23df7e..bb7da129 100644
--- a/packages/toolkits/pro/template/tinyvue/tsconfig.json
+++ b/packages/toolkits/pro/template/tinyvue/tsconfig.json
@@ -3,9 +3,9 @@
     "target": "ES2020",
     "module": "ES2020",
     "moduleResolution": "node",
-    "strict": true, /* 启用所有严格的类型检查选项。 */
-    "jsx": "preserve", /* 指定生成什么JSX代码*/
-    "sourceMap": true,  /* 为生成的JavaScript文件创建源映射文件*/
+    "strict": false,
+    "jsx": "preserve",
+    "sourceMap": true,
     "resolveJsonModule": true,
     "esModuleInterop": true,
     "baseUrl": ".",
@@ -13,8 +13,8 @@
       "@/*": ["src/*"]
     },
     "lib": ["es2020", "dom"],
-    "skipLibCheck": true, /* 跳过类型检查所有.d.ts文件 */
-    "types": ["vite/client",] /* vite ts支持 */
+    "skipLibCheck": true,
+    "types": ["vite/client"]
   },
   "include": ["src/**/*", "src/**/*.vue"],
   "exclude": ["node_modules"],
diff --git a/packages/toolkits/pro/template/tinyvue/webpack.config.js b/packages/toolkits/pro/template/tinyvue/webpack.config.js
new file mode 100644
index 00000000..877bbacc
--- /dev/null
+++ b/packages/toolkits/pro/template/tinyvue/webpack.config.js
@@ -0,0 +1,172 @@
+const {resolve} = require('path');
+const { VueLoaderPlugin } = require('vue-loader')
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const {DefinePlugin} = require('webpack');
+const {configDotenv,parse} = require('dotenv');
+configDotenv({
+  path:'./.env'
+})
+module.exports = {
+  mode: 'production',
+  entry: {
+    main: './src/main.ts'
+  },
+  output: {
+    path: resolve(__dirname, 'dist'), // 打包后的文件输出的目录
+    filename: `js/[name]_[chunkhash:8].js`, // 设置打包后的 js 文件名,如果在文件名前增加文件路径,会将打包后的 js 文件放在指定的文件夹下
+    publicPath: '/'
+  },
+  module: {
+    rules: [
+      // {
+      //   test: /\.js$/,
+      //   use: ['babel-loader'],
+      //   exclude: /node_modules/
+      // },
+      {
+        test: /\.vue$/,
+        loader: 'vue-loader'
+      },
+      {
+        test: /\.css$/,
+        use: ['style-loader', 'css-loader']
+      },
+      {
+        test: /\.(ts)$/,
+        use: [
+          {
+            loader: 'ts-loader',
+            options: {
+              appendTsSuffixTo: [/\.vue$/],
+              transpileOnly: true
+            },
+          },
+          {
+            loader: 'import-meta-loader',
+            options: {
+            }
+          },
+        ],
+        exclude: /node_modules/,
+      },
+      {
+        test: /\.less$/,
+        use: [
+          'style-loader',
+          'css-loader',
+          'less-loader',
+          {
+            loader: 'style-resources-loader',
+            options: {
+                patterns: resolve(__dirname,'src/assets/style/breakpoint.less')
+            }
+          }
+        ],
+      },
+      {
+        test: /\.m?js/,
+        resolve: {
+          fullySpecified: false
+        }
+      },
+      {
+        test:/.(png|jpg|jpeg|gif|svg)$/, // 匹配图片文件
+        type: "asset", // type选择asset
+        parser: {
+          dataUrlCondition: {
+            maxSize: 10 * 1024, // 小于10kb转base64位
+          }
+        },
+        generator:{
+          filename:'static/images/[name].[contenthash:8][ext]', // 文件输出目录和命名
+        },
+      },
+      {
+        test:/.(woff2?|eot|ttf|otf)$/, // 匹配字体图标文件
+        type: "asset", // type选择asset
+        parser: {
+          dataUrlCondition: {
+            maxSize: 10 * 1024, // 小于10kb转base64位
+          }
+        },
+        generator:{
+          filename:'static/fonts/[name].[contenthash:8][ext]', // 文件输出目录和命名
+        },
+      },
+      {
+        test:/.(mp4|webm|ogg|mp3|wav|flac|aac)$/, // 匹配媒体文件
+        type: "asset", // type选择asset
+        parser: {
+          dataUrlCondition: {
+            maxSize: 10 * 1024, // 小于10kb转base64位
+          }
+        },
+        generator:{
+          filename:'static/media/[name].[contenthash:8][ext]', // 文件输出目录和命名
+        },
+      },
+    ]
+  },
+  plugins: [
+    new VueLoaderPlugin(),
+    new HtmlWebpackPlugin({
+      template: resolve(__dirname, 'index.html'),
+      filename: 'index.html',
+      chunks: ['main'],
+      inject: true,
+      minify: {
+        html5: true,
+        collapseWhitespace: true,
+        preserveLineBreaks: false,
+        minifyCSS: true,
+        minifyJS: true,
+        removeComments: false
+      }
+    }),
+    new DefinePlugin({
+      'process.env': JSON.stringify({ ...process.env }),
+      'import.meta.env': '""',
+      'import.meta.env.VITE_CONTEXT': '"/vue-pro/"',
+      'import.meta.env.VITE_BASE_API': '"/api"',
+      'import.meta.env.VITE_SERVER_HOST': '"http://127.0.0.1:3000"',
+      'import.meta.env.VITE_MOCK_HOST': '"http://127.0.0.1:8848"',
+      'import.meta.env.VITE_USE_MOCK': 'false',
+      'import.meta.env.VITE_MOCK_IGNORE': '"/api/user/userInfo,/api/user/login,/api/user/register,/api/employee/getEmployee"',
+      'import.meta.env.VITE_MOCK_SERVER_HOST': '"/mock"',
+
+    })
+  ],
+  resolve: {
+    alias: {
+      '@': resolve(__dirname, 'src'),
+      'assets': resolve(__dirname, 'src/assets'),
+      'vue-i18n$': 'vue-i18n/dist/vue-i18n.esm-bundler.js',
+      'vue$': 'vue/dist/vue.esm-bundler.js'
+    },
+    extensions: ['.ts', '.js', '.vue'],
+  },
+  cache: {
+    type: 'filesystem',
+  },
+  devServer: {
+    historyApiFallback: true,
+    proxy:[
+      {
+        context: [process.env.VITE_BASE_API],
+        target: process.env.VITE_SERVER_HOST,
+        changeOrigin: true,
+        pathRewrite: {
+          '^/api': ''
+        }
+      },
+      {
+        context: [process.env.VITE_MOCK_SERVER_HOST],
+        target: process.env.VITE_MOCK_HOST,
+        changeOrigin: true,
+        pathRewrite:{
+          '^/mock': ''
+        }
+      }
+    ]
+  }
+}

From b407a76f8078990301edba1de1309f43ffc05003 Mon Sep 17 00:00:00 2001
From: fmm <1442620801@qq.com>
Date: Sat, 10 Aug 2024 20:37:02 +0800
Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=E6=A3=80=E8=A7=86=E6=84=8F=E8=A7=81?=
 =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../tinyvue/config/vite.config.base.ts        | 13 -------------
 .../config/vite.config.preview.base.ts        | 11 -----------
 .../tinyvue/config/vite.config.prod.ts        |  1 -
 .../template/tinyvue/http.server.config.js    | 19 -------------------
 .../pro/template/tinyvue/package.json         |  2 --
 .../toolkits/pro/template/tinyvue/src/main.ts |  3 ---
 .../pro/template/tinyvue/src/mock/board.ts    |  1 -
 .../pro/template/tinyvue/src/mock/index.ts    |  5 -----
 .../pro/template/tinyvue/src/mock/list.ts     |  1 -
 .../pro/template/tinyvue/src/mock/profile.ts  |  1 -
 .../pro/template/tinyvue/src/mock/user.ts     |  1 -
 .../template/tinyvue/src/mockProdServer.ts    |  7 -------
 .../tinyvue/src/views/form/step/mock.ts       |  1 -
 .../pro/template/tinyvue/tsconfig.json        |  7 -------
 .../pro/template/tinyvue/webpack.config.js    |  5 -----
 15 files changed, 78 deletions(-)
 delete mode 100644 packages/toolkits/pro/template/tinyvue/http.server.config.js
 delete mode 100644 packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts

diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts
index 7357bcab..b44c6b6f 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.base.ts
@@ -3,25 +3,12 @@ import { defineConfig } from 'vite';
 import vue from '@vitejs/plugin-vue';
 import vueJsx from '@vitejs/plugin-vue-jsx';
 import svgLoader from 'vite-svg-loader';
-// import { viteMockServe } from 'vite-plugin-mock';
-
-const useMock = !! process.env.VITE_USE_MOCK
 
 const config = {
   plugins: [
     vue(),
     vueJsx(),
     svgLoader({ svgoConfig: {} }),
-    // viteMockServe({
-    //   mockPath: '../src/mock', // mock文件地址
-    //   localEnabled:useMock, // 开发打包开关
-    //   prodEnabled:true, // 生产打包开关 // 这样可以控制关闭mock的时候不让mock打包到最终代码内
-    //   injectCode: ` import { setupProdMockServer } from '../src/mockProdServer'; setupProdMockServer(); `,
-    //   logger: true, // 是否在控制台显示请求日志
-    //   supportTs: false, // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
-    //   watchFiles:true,
-    //   injectFile: resolve('../src/main.ts'),
-    // })
   ],
   build: {
     outDir: resolve(__dirname, '../dist'),
diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts
index e9a5e873..018e9924 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.preview.base.ts
@@ -3,23 +3,12 @@ import { defineConfig } from 'vite';
 import vue from '@vitejs/plugin-vue';
 import vueJsx from '@vitejs/plugin-vue-jsx';
 import svgLoader from 'vite-svg-loader';
-// import { viteMockServe } from 'vite-plugin-mock';
 
 export default defineConfig({
   plugins: [
     vue(),
     vueJsx(),
     svgLoader({ svgoConfig: {} }),
-    // viteMockServe({
-    //   // 更多配置见最下方
-    //   mockPath: '../src/mock', // mock文件地址
-    //   localEnabled: true, // 开发打包开关
-    //   prodEnabled: true, // 生产打包开关 // 这样可以控制关闭mock的时候不让mock打包到最终代码内
-    //   injectCode: ` import { setupProdMockServer } from '../src/mockProdServer'; setupProdMockServer(); `,
-    //   logger: false, // 是否在控制台显示请求日志
-    //   supportTs: false, // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
-    //   injectFile: resolve('../src/main.ts'),
-    // }),
   ],
   build: {
     outDir: resolve(__dirname, '../dist/vue-pro/pages'),
diff --git a/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts b/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts
index 4fc0e2e9..abccb66c 100644
--- a/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts
+++ b/packages/toolkits/pro/template/tinyvue/config/vite.config.prod.ts
@@ -6,7 +6,6 @@ import configVisualizerPlugin from './plugin/visualizer';
 export default mergeConfig(
   {
     mode: 'production',
-    // mock: true,
     plugins: [configCompressPlugin('gzip'), configVisualizerPlugin()],
     build: {
       rollupOptions: {
diff --git a/packages/toolkits/pro/template/tinyvue/http.server.config.js b/packages/toolkits/pro/template/tinyvue/http.server.config.js
deleted file mode 100644
index ced9fcf9..00000000
--- a/packages/toolkits/pro/template/tinyvue/http.server.config.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// server-config.js
-const { createProxyMiddleware } = require('http-proxy-middleware');
-
-module.exports = function(app) {
-  app.use('/api', createProxyMiddleware({
-    target: 'http://http://127.0.0.1:3000', // 目标服务器地址
-    changeOrigin: true, // 改变源地址,使目标服务器认为请求来自代理服务器
-    pathRewrite: {
-      '^/api': '', // 重写请求路径
-    },
-  }));
-  app.use('/mock', createProxyMiddleware({
-    target: 'http://127.0.0.1:8848', // 目标服务器地址
-    changeOrigin: true, // 改变源地址,使目标服务器认为请求来自代理服务器
-    pathRewrite: {
-      '^/mock': '', // 重写请求路径
-    },
-  }));
-};
diff --git a/packages/toolkits/pro/template/tinyvue/package.json b/packages/toolkits/pro/template/tinyvue/package.json
index 32b46d55..4eb7634d 100644
--- a/packages/toolkits/pro/template/tinyvue/package.json
+++ b/packages/toolkits/pro/template/tinyvue/package.json
@@ -47,7 +47,6 @@
     "echarts": "~5.4.3",
     "echarts4": "npm:echarts@4.9.0",
     "fp-ts": "2.16.1",
-    "http-proxy-middleware": "^3.0.0",
     "mitt": "^3.0.1",
     "moment": "^2.29.4",
     "nprogress": "^1.0.0-1",
@@ -123,7 +122,6 @@
   },
   "resolutions": {
     "bin-wrapper": "npm:bin-wrapper-china",
-    "rollup": "^2.56.3",
     "gifsicle": "5.2.0"
   }
 }
diff --git a/packages/toolkits/pro/template/tinyvue/src/main.ts b/packages/toolkits/pro/template/tinyvue/src/main.ts
index f516cbae..4b2ce0b3 100644
--- a/packages/toolkits/pro/template/tinyvue/src/main.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/main.ts
@@ -6,15 +6,12 @@ import router from './router';
 import store from './store';
 import i18n from './locale';
 import directive from './directive';
-// import { setupProdMockServer } from './mockProdServer';
-// import './mock';
 import App from './App.vue';
 import '@/api/interceptor';
 import '@/assets/style/global.less';
 import config from '../hwc-exports.json';
 import chinaMap from './assets/chaina.json';
 
-// if(import.meta.env.VITE_USE_MOCK) setupProdMockServer();
 
 registerMap('china', chinaMap as any);
 const app = createApp(App);
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/board.ts b/packages/toolkits/pro/template/tinyvue/src/mock/board.ts
index 6e3f2e38..d36d488e 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/board.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/board.ts
@@ -1,4 +1,3 @@
-// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
 import { successResponseWrap } from '../utils/setup-mock';
 
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/index.ts b/packages/toolkits/pro/template/tinyvue/src/mock/index.ts
index a033a493..a99cfb91 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/index.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/index.ts
@@ -1,14 +1,9 @@
 import {createMockServer} from '@gaonengwww/mock-server';
-// import user from './user';
 import list from './list';
 import froms from '../views/form/step/mock';
 import profile from './profile';
 import board from './board';
 
-// const index = [...user, ...list, ...froms, ...profile, ...board];
-//
-// export default index;
-
 let mockData = [] as any
 for(let i=0; i<board.length; i+=1){
   mockData.push(board[i])
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/list.ts b/packages/toolkits/pro/template/tinyvue/src/mock/list.ts
index 83c075ca..207e6fb8 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/list.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/list.ts
@@ -1,4 +1,3 @@
-// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
 import { successResponseWrap } from '../utils/setup-mock';
 
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts b/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts
index acf9ec21..8d520ea3 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/profile.ts
@@ -1,4 +1,3 @@
-// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
 import { successResponseWrap } from '../utils/setup-mock';
 
diff --git a/packages/toolkits/pro/template/tinyvue/src/mock/user.ts b/packages/toolkits/pro/template/tinyvue/src/mock/user.ts
index 632a1953..cadaf001 100644
--- a/packages/toolkits/pro/template/tinyvue/src/mock/user.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/mock/user.ts
@@ -1,4 +1,3 @@
-// import {MockMethod} from 'vite-plugin-mock';
 import {
   successResponseWrap,
   failResponseWrap,
diff --git a/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts b/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts
deleted file mode 100644
index eddb3b10..00000000
--- a/packages/toolkits/pro/template/tinyvue/src/mockProdServer.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-//  mockProdServer.ts
-// import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer';
-// import index from './mock/index';
-//
-// export function setupProdMockServer() {
-//   createProdMockServer([...index]);
-// }
diff --git a/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts b/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts
index 0449eeb5..676b8321 100644
--- a/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts
+++ b/packages/toolkits/pro/template/tinyvue/src/views/form/step/mock.ts
@@ -1,4 +1,3 @@
-// import {MockMethod} from 'vite-plugin-mock';
 import Mock from 'mockjs';
 import { successResponseWrap } from '../../../utils/setup-mock';
 
diff --git a/packages/toolkits/pro/template/tinyvue/tsconfig.json b/packages/toolkits/pro/template/tinyvue/tsconfig.json
index bb7da129..bf6e9d69 100644
--- a/packages/toolkits/pro/template/tinyvue/tsconfig.json
+++ b/packages/toolkits/pro/template/tinyvue/tsconfig.json
@@ -18,11 +18,4 @@
   },
   "include": ["src/**/*", "src/**/*.vue"],
   "exclude": ["node_modules"],
-  "ts-node": {
-    "esm": true,
-    "experimentalSpecifierResolution": "node",
-    "compilerOptions": {
-      "module": "commonjs"
-    }
-  }
 }
diff --git a/packages/toolkits/pro/template/tinyvue/webpack.config.js b/packages/toolkits/pro/template/tinyvue/webpack.config.js
index 877bbacc..eb8659a1 100644
--- a/packages/toolkits/pro/template/tinyvue/webpack.config.js
+++ b/packages/toolkits/pro/template/tinyvue/webpack.config.js
@@ -18,11 +18,6 @@ module.exports = {
   },
   module: {
     rules: [
-      // {
-      //   test: /\.js$/,
-      //   use: ['babel-loader'],
-      //   exclude: /node_modules/
-      // },
       {
         test: /\.vue$/,
         loader: 'vue-loader'