Jelajahi Sumber

处理build的问题

gemercheung 2 tahun lalu
induk
melakukan
df30601643

+ 0 - 18
.env.prod

@@ -1,18 +0,0 @@
-# 场景资源地址
-VITE_APP_RESOURCE_URL=https://eurs3.4dkankan.com/
-# 静态资源地址
-VITE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
-# sdk文件地址
-VITE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk
-
-# 静态资源目录
-VITE_APP_STATIC_DIR=viewer
-
-# 云存储环境
-VITE_APP_REGION_URL=aws
-
-# 接口请求地址
-VITE_APP_APIS_URL=https://vr.cdfmembers.com/
-
-# socket地址
-VITE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/

+ 14 - 0
.env.production

@@ -0,0 +1,14 @@
+# 场景资源地址
+VITE_APP_RESOURCE_URL=https://4dkk.4dage.com/
+# 静态资源地址
+VITE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
+# sdk文件地址
+VITE_APP_SDK_DIR=https://4dkk.4dage.com/v4/sdk/4.2.1
+# socket地址
+VITE_APP_SOCKET_URL=wss://ws.4dkankan.com
+# 静态资源目录
+VITE_APP_STATIC_DIR=viewer
+# 接口请求地址
+VITE_APP_APIS_URL=https://test.4dkankan.com/
+# VITE_APP_APIS_URL=https://v4-uat.4dkankan.com/
+VITE_USE_HTTPS=1

+ 2 - 0
.eslintignore

@@ -1,6 +1,8 @@
 
 *.sh
 node_modules
+dist
+
 # 
 src/components/basic/button
 src/components/basic/dialog

+ 17 - 29
index.html

@@ -4,50 +4,38 @@
     <meta charset="UTF-8" />
     <meta charset="utf-8" />
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <meta
-      name="viewport"
-      content="width=device-width, initial-scale=1, maximum-scale=1"
-    />
-    <link
-      rel="icon"
-      href="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/favicon.png"
-    />
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
+    <link rel="icon" href="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/favicon.png" />
 
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_2596172_ejg30arrayu.css" />
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_3423899_m7c62apktz.css" />
     <link
       rel="stylesheet"
-      href="//at.alicdn.com/t/font_2596172_ejg30arrayu.css"
-    />
-    <link
-      rel="stylesheet"
-      href="//at.alicdn.com/t/font_3423899_m7c62apktz.css"
-    />
-    <link
-      rel="stylesheet"
-      href="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/animate/animate.min.css"
+      href="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/animate/animate.min.css"
     />
     <link
       rel="stylesheet"
-      href="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/swiper/swiper-bundle.min.css"
+      href="<{BASE_URL}><{ VITE_APP_STATIC_DIR}>/static/lib/swiper/swiper-bundle.min.css"
     />
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/mobile-detect.js"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/flexible.min.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/mobile-detect.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/flexible.min.js"></script>
 
     <title></title>
   </head>
   <body>
     <div id="app"></div>
     <script type="module" src="/src/main.ts"></script>
-    <script src="<%= VITE_APP_SDK_DIR %>/kankan-sdk-deps.js?v=4.37.3-alpha.78"></script>
-    <script src="<%= VITE_APP_SDK_DIR %>/kankan-sdk.js?v=4.37.3-alpha.78"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/flv.min.js"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/vconsole.js"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/swiper/swiper-bundle.min.js"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/socket.io.min.js"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/zmjm.min.js"></script>
-    <script src="<%= BASE_URL %><%= VITE_APP_STATIC_DIR %>/static/lib/jweixin-1.6.0.js"></script>
+    <script src="<{VITE_APP_SDK_DIR}>/kankan-sdk-deps.js?v=4.37.3-alpha.78"></script>
+    <script src="<{VITE_APP_SDK_DIR}>/kankan-sdk.js?v=4.37.3-alpha.78"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/flv.min.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/vconsole.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/swiper/swiper-bundle.min.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/socket.io.min.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/zmjm.min.js"></script>
+    <script src="<{BASE_URL}><{VITE_APP_STATIC_DIR}>/static/lib/jweixin-1.6.0.js"></script>
 
     <script>
-      if ((query = window.location.href.indexOf("vlog") != -1)) {
+      if ((query = window.location.href.indexOf('vlog') != -1)) {
         var vConsole = new window.VConsole();
       }
     </script>

+ 3 - 3
package.json

@@ -4,10 +4,10 @@
   "version": "0.0.0",
   "scripts": {
     "dev": "vite",
-    "build": "vue-tsc  --noEmit && vite build ",
-    "preview": "vite preview",
+    "build": "vue-tsc  --noEmit && vite build --mode production",
     "commit": "git add . && git cz",
-    "lint:eslint": "eslint --max-warnings 0  \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
+    "preview": "vite preview",
+    "lint:eslint": "eslint --max-warnings 0  \"**/*.{vue,ts,tsx}\" --fix",
     "lint:prettier": "prettier --write  \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
     "lint:lint-staged": "lint-staged"
   },

+ 3 - 3
src/components/basic/dialog/toast.scss

@@ -35,17 +35,17 @@
   }
   &.success {
     .icon {
-      background-image: url('#{$img-base-path}icons/toast-success.png');
+      background-image: url('#{$img-base-path}icon/toast-success.png');
     }
   }
   &.error {
     .icon {
-      background-image: url('#{$img-base-path}icons/toast-error.png');
+      background-image: url('#{$img-base-path}icon/toast-error.png');
     }
   }
   &.warn {
     .icon {
-      background-image: url('#{$img-base-path}icons/toast-warn.png');
+      background-image: url('#{$img-base-path}icon/toast-warn.png');
     }
   }
   &::after {

+ 3 - 3
src/components/basic/guide.vue

@@ -144,7 +144,7 @@
     .zh {
       width: 100%;
       height: 7rem;
-      background-image: url(~@/assets/images/guide/novice_guide_text@2x.png);
+      background-image: url(/@/assets/images/guide/novice_guide_text@2x.png);
       background-size: contain;
       background-position: center top;
       background-repeat: no-repeat;
@@ -194,7 +194,7 @@
         line-height: 1.2rem;
         text-align: center;
         font-size: 0.52632rem;
-        background-image: url(~@/assets/images/guide/novice_guide_button_empty@2x.png);
+        background-image: url(/@/assets/images/guide/novice_guide_button_empty@2x.png);
       }
     }
     .btn {
@@ -203,7 +203,7 @@
       left: 50%;
       width: 3.5rem;
       height: 1.31579rem;
-      background-image: url(~@/assets/images/guide/novice_guide_button@2x.png);
+      background-image: url(/@/assets/images/guide/novice_guide_button@2x.png);
       background-size: contain;
       background-position: center top;
       background-repeat: no-repeat;

+ 0 - 94
src/components/chatRoom/dialog/checkBrowser.vue

@@ -1,94 +0,0 @@
-<template>
-  <div id="checkBrowser">
-    <i class="iconfont iconshow_cancel" @click="closeCheckBrowser"></i>
-    <p class="title">建議使用以下最新版本的瀏覽器用於通話</p>
-    <div class="browser_list">
-      <div class="item" v-for="(i, index) in browserList" :key="index">
-        <div class="browser_icon">
-          <img :src="$config.getStaticResource(`img/apps/rtcLive/${i.icon}.png`)" alt="" />
-        </div>
-        <div class="browser_name">{{ i.name }}</div>
-        <!-- <div class="browser_version ">{{i.version}}</div> -->
-      </div>
-    </div>
-  </div>
-</template>
-
-<script lang="ts">
-  export default {
-    components: {},
-    data() {
-      return {
-        browserList: [
-          {
-            icon: 'chrome',
-            name: 'Chrome',
-            version: '60',
-          },
-          {
-            icon: 'firefox',
-            name: 'Firefox',
-            version: '55',
-          },
-          {
-            icon: 'edge',
-            name: 'Edge',
-            version: '40',
-          },
-          {
-            icon: 'safari',
-            name: 'Safari',
-            version: '11',
-          },
-        ],
-      };
-    },
-    methods: {
-      closeCheckBrowser() {
-        this.$parent.showCheckBrowser = false;
-      },
-    },
-  };
-</script>
-
-<style scoped lang="scss">
-  #checkBrowser {
-    position: fixed;
-
-    top: 50%;
-    left: 50%;
-    transform: translate(-50%, -50%);
-    z-index: 1000;
-    background: rgba(0, 0, 0, 0.5);
-    padding: 1.11rem;
-    border-radius: 0.14rem;
-    text-align: center;
-    z-index: 10000;
-    .iconshow_cancel {
-      font-size: 0.42rem;
-      position: absolute;
-      right: 0.33rem;
-      top: 0.33rem;
-    }
-    .title {
-      font-size: 0.28rem;
-      color: #fff;
-    }
-    .browser_list {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      margin: 0.42rem 0 0 0;
-      .item {
-        img {
-          width: 1.39rem;
-          height: auto;
-        }
-        margin-right: 0.28rem;
-        &:last-of-type {
-          margin-right: 0;
-        }
-      }
-    }
-  }
-</style>

src/components/chatRoom/dialog/createdRoom.vue → src/components/chatRoom/dialog/createdRoom.vue.back


+ 0 - 0
src/hooks/useParams.ts


+ 24 - 24
src/utils/browser.ts

@@ -3,8 +3,8 @@
 
 function mobileVersion(e, t) {
   //ios的版本
-  const i = window.navigator.userAgent,
-    n = i.match(e);
+  const i = window.navigator.userAgent;
+  let n = i.match(e);
   return (
     (n = n ? n[1].split(t) : []),
     {
@@ -44,15 +44,15 @@ const browser = {
     dom.requestFullscreen
       ? dom.requestFullscreen()
       : dom.mozRequestFullScreen
-      ? dom.mozRequestFullScreen()
-      : dom.webkitRequestFullscreen
-      ? dom.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)
-      : dom.msRequestFullscreen && dom.msRequestFullscreen(),
+        ? dom.mozRequestFullScreen()
+        : dom.webkitRequestFullscreen
+          ? dom.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)
+          : dom.msRequestFullscreen && dom.msRequestFullscreen(),
       t &&
-        $(document).on(
-          'fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange',
-          browser.requestPointerLock,
-        );
+      $(document).on(
+        'fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange',
+        browser.requestPointerLock,
+      );
   },
   requestPointerLock: function () {
     let e;
@@ -80,19 +80,19 @@ const browser = {
     document.exitFullscreen
       ? document.exitFullscreen()
       : document.msExitFullscreen
-      ? document.msExitFullscreen()
-      : document.mozCancelFullScreen
-      ? document.mozCancelFullScreen()
-      : document.webkitExitFullscreen && document.webkitExitFullscreen();
+        ? document.msExitFullscreen()
+        : document.mozCancelFullScreen
+          ? document.mozCancelFullScreen()
+          : document.webkitExitFullscreen && document.webkitExitFullscreen();
   },
   details: function () {
     const e = navigator.userAgent.match('(Firefox|Chrome|Safari)/([\\d]+)');
     return e
       ? {
-          name: e[1],
-          version: parseInt(e[2]),
-          platform: navigator.platform,
-        }
+        name: e[1],
+        version: parseInt(e[2]),
+        platform: navigator.platform,
+      }
       : {};
   },
   is: function (e) {
@@ -197,8 +197,8 @@ const browser = {
     const e = $.Deferred();
     return this.detectWebVR()
       ? (navigator.getVRDisplays().then(function (t) {
-          t.length >= 1 && e.resolve(t[0]), e.reject(null);
-        }),
+        t.length >= 1 && e.resolve(t[0]), e.reject(null);
+      }),
         e)
       : e.reject(null);
   },
@@ -222,8 +222,8 @@ const browser = {
     return 'boolean' == typeof t
       ? 'true' === n || '1' === n
       : 'number' == typeof t
-      ? parseFloat(n)
-      : n;
+        ? parseFloat(n)
+        : n;
   },
   valueFromHash: function (e, t) {
     const i = new RegExp('[#&?]' + e + '=([^#&?]*)'),
@@ -233,8 +233,8 @@ const browser = {
     return 'boolean' == typeof t
       ? 'true' === r || '1' === r
       : 'number' == typeof t
-      ? parseFloat(r)
-      : window.decodeURIComponent(r);
+        ? parseFloat(r)
+        : window.decodeURIComponent(r);
   },
   //-------许钟文:-------------------------------------------------
 

+ 1 - 1
types/global.d.ts

@@ -96,6 +96,6 @@ declare global {
 
 declare module 'vue' {
   export type JSXComponent<Props = any> =
-    | { new(): ComponentPublicInstance<Props> }
+    | { new (): ComponentPublicInstance<Props> }
     | FunctionalComponent<Props>;
 }

+ 31 - 31
types/io.d.ts

@@ -1,40 +1,40 @@
-declare var io: SocketIOClientStatic;
+declare let io: SocketIOClientStatic;
 
 declare module 'socket.io-client' {
-    export = io;
+  export = io;
 }
 
 interface SocketIOClientStatic {
-    (host: string, details?: any): SocketIOClient.Socket;
-    (details?: any): SocketIOClient.Socket;
-    connect(host: string, details?: any): SocketIOClient.Socket;
-    connect(details?: any): SocketIOClient.Socket;
-    protocol: number;
-    Socket: { new (...args: any[]): SocketIOClient.Socket };
-    Manager: SocketIOClient.ManagerStatic;
+  (host: string, details?: any): SocketIOClient.Socket;
+  (details?: any): SocketIOClient.Socket;
+  connect(host: string, details?: any): SocketIOClient.Socket;
+  connect(details?: any): SocketIOClient.Socket;
+  protocol: number;
+  Socket: { new (...args: any[]): SocketIOClient.Socket };
+  Manager: SocketIOClient.ManagerStatic;
 }
 
-declare module SocketIOClient {
-    interface Socket {
-        on(event: string, fn: Function): Socket;
-        once(event: string, fn: Function): Socket;
-        off(event?: string, fn?: Function): Socket;
-        emit(event: string, ...args: any[]): Socket;
-        listeners(event: string): Function[];
-        hasListeners(event: string): boolean;
-        connected: boolean;
-    }
+declare namespace SocketIOClient {
+  interface Socket {
+    on(event: string, fn: Function): Socket;
+    once(event: string, fn: Function): Socket;
+    off(event?: string, fn?: Function): Socket;
+    emit(event: string, ...args: any[]): Socket;
+    listeners(event: string): Function[];
+    hasListeners(event: string): boolean;
+    connected: boolean;
+  }
 
-    interface ManagerStatic {
-        (url: string, opts: any): SocketIOClient.Manager;
-        new (url: string, opts: any): SocketIOClient.Manager;
-    }
+  interface ManagerStatic {
+    (url: string, opts: any): SocketIOClient.Manager;
+    new (url: string, opts: any): SocketIOClient.Manager;
+  }
 
-    interface Manager {
-        reconnection(v: boolean): Manager;
-        reconnectionAttempts(v: boolean): Manager;
-        reconnectionDelay(v: boolean): Manager;
-        reconnectionDelayMax(v: boolean): Manager;
-        timeout(v: boolean): Manager;
-    }
-}
+  interface Manager {
+    reconnection(v: boolean): Manager;
+    reconnectionAttempts(v: boolean): Manager;
+    reconnectionDelay(v: boolean): Manager;
+    reconnectionDelayMax(v: boolean): Manager;
+    timeout(v: boolean): Manager;
+  }
+}

+ 62 - 63
types/sdk.d.ts

@@ -1,76 +1,75 @@
-import EventEmitter from "events"
-
+import EventEmitter from 'events';
 
 declare interface CadCadManagerType extends EventEmitter {
   edit: {
-    enter: Fn
-    exit: Fn
-  }
+    enter: Fn;
+    exit: Fn;
+  };
 }
 declare interface TourManagerType extends EventEmitter {
-  load: Fn<any[]>
+  load: Fn<any[]>;
 }
-declare interface RemoteEditorType  extends EventEmitter {
-  tour_delete: ({ num: string }) => Promise<void>
+declare interface RemoteEditorType extends EventEmitter {
+  tour_delete: ({ num: string }) => Promise<void>;
 }
 
-declare interface KanKanInstance  extends EventEmitter {
-  [x: string]: any
-  CadCadManager: CadCadManagerType
-  TourManager: TourManagerType
-  remote_editor: RemoteEditorType
+declare interface KanKanInstance extends EventEmitter {
+  [x: string]: any;
+  CadCadManager: CadCadManagerType;
+  TourManager: TourManagerType;
+  remote_editor: RemoteEditorType;
 }
 
 declare interface KankanMetaDataType {
-  num: string
-  floorLogo: string
-  floorLogoSize: number,
-  floorLogoFile: string
-  music: string
-  musicFile: string
-  scenePassword: string,
-  title: string
-  description: string
+  num: string;
+  floorLogo: string;
+  floorLogoSize: number;
+  floorLogoFile: string;
+  music: string;
+  musicFile: string;
+  scenePassword: string;
+  title: string;
+  description: string;
   controls: {
-    showMap: number
-    showLock: number
-    showTitle: number
-    showPanorama: number
-    showDollhouse: number
-    showFloorplan: number
-    showVR: number
-    showTour: number
-    showRule: number
-  },
-  createTime: string
-  version: number,
-  imgVersion: number,
-  linkVersion: number
-  floorPlanUser: number
-  entry: any,
-  sceneResolution: string,
-  sceneFrom: string
-  sceneKind: string
-  boxPhotos: string,
-  boxModels: string,
+    showMap: number;
+    showLock: number;
+    showTitle: number;
+    showPanorama: number;
+    showDollhouse: number;
+    showFloorplan: number;
+    showVR: number;
+    showTour: number;
+    showRule: number;
+  };
+  createTime: string;
+  version: number;
+  imgVersion: number;
+  linkVersion: number;
+  floorPlanUser: number;
+  entry: any;
+  sceneResolution: string;
+  sceneFrom: string;
+  sceneKind: string;
+  boxPhotos: string;
+  boxModels: string;
   videos: {
-    data: [{ blend_fov: string, id: string, value: string }],
-    upPath: string,
-    version: number,
-  },
-  tags: number,
-  loadingLogo: string,
-  loadingLogoFile: string,
-  dataSync: any,
-  floorPlanAngle: number,
-  floorPlanCompass: number,
-  floorPlanUpload: any,
-  tours: number,
-  mosaic: number,
-  mosaicList: [],
-  waterMark: any,
-  links: number,
-  filters: number,
-  roiFilter: any,
-  surveillances: number,
-}
+    data: [{ blend_fov: string; id: string; value: string }];
+    upPath: string;
+    version: number;
+  };
+  tags: number;
+  loadingLogo: string;
+  loadingLogoFile: string;
+  dataSync: any;
+  floorPlanAngle: number;
+  floorPlanCompass: number;
+  floorPlanUpload: any;
+  tours: number;
+  mosaic: number;
+  mosaicList: [];
+  waterMark: any;
+  links: number;
+  filters: number;
+  roiFilter: any;
+  surveillances: number;
+}

+ 45 - 50
vite.config.ts

@@ -1,61 +1,56 @@
-import { defineConfig, loadEnv } from 'vite'
-import vue from '@vitejs/plugin-vue'
-import VitePluginHtmlEnv from 'vite-plugin-html-env'
-import { resolve } from 'path'
-import WindiCSS from "vite-plugin-windicss";
-import consola from 'consola'
-import mkcert from "vite-plugin-mkcert";
-// import eslintPlugin from 'vite-plugin-eslint' 
+import { defineConfig, loadEnv } from 'vite';
+import vue from '@vitejs/plugin-vue';
+import VitePluginHtmlEnv from 'vite-plugin-html-env';
+import { resolve } from 'path';
+import WindiCSS from 'vite-plugin-windicss';
+// import consola from 'consola';
+import mkcert from 'vite-plugin-mkcert';
+// import eslintPlugin from 'vite-plugin-eslint'
 // import requireTransform from 'vite-plugin-require-transform'
 
 function pathResolve(dir: string) {
   return resolve(process.cwd(), '.', dir);
 }
 
-
-
 // https://vitejs.dev/config/
-export default ({ mode }) => defineConfig({
-  plugins: [
-    // eslintPlugin({
-    //   include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.js', 'src/*.vue']
-    // }),
-    mkcert(),
-    vue(),
-    WindiCSS(),
-    VitePluginHtmlEnv({
-      prefix: '<%=',
-      suffix: '%>',
-      envPrefixes: ['VITE_', 'VUE_']
-    })],
-  resolve: {
-    alias: [
-      {
-        find: /\/@\//,
-        replacement: pathResolve('src') + '/',
-      },
-    ]
-
-  },
-  server: {
-    https: Number(loadEnv(mode, process.cwd()).VITE_USE_HTTPS) == 1,
-    host: true,
-    headers: {
-      "Cache-Control": "no-store",
+export default ({ mode }) =>
+  defineConfig({
+    plugins: [
+      // eslintPlugin({
+      //   include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.js', 'src/*.vue']
+      // }),
+      mkcert(),
+      vue(),
+      WindiCSS(),
+      VitePluginHtmlEnv({
+        prefix: '<{',
+        suffix: '}>',
+        envPrefixes: ['VITE_', 'VUE_'],
+      }),
+    ],
+    resolve: {
+      alias: [
+        {
+          find: /\/@\//,
+          replacement: pathResolve('src') + '/',
+        },
+      ],
     },
-    proxy: {
-      "/service": {
-        target: loadEnv(mode, process.cwd()).VITE_APP_APIS_URL,
-        changeOrigin: true,
+    server: {
+      https: Number(loadEnv(mode, process.cwd()).VITE_USE_HTTPS) == 1,
+      host: true,
+      headers: {
+        'Cache-Control': 'no-store',
       },
-      "/takelook": {
-        target: 'https://v4-test.4dkankan.com',
-        changeOrigin: true,
+      proxy: {
+        '/service': {
+          target: loadEnv(mode, process.cwd()).VITE_APP_APIS_URL,
+          changeOrigin: true,
+        },
+        '/takelook': {
+          target: 'https://v4-test.4dkankan.com',
+          changeOrigin: true,
+        },
       },
     },
-  }
-
-
-
-
-})
+  });