| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | import { defineConfig } from 'vite';import vue from '@vitejs/plugin-vue';import vueJsx from '@vitejs/plugin-vue-jsx';import Components from 'unplugin-vue-components/vite';import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';// import viteESLint from 'vite-plugin-eslint';import legacyPlugin from '@vitejs/plugin-legacy';import { VitePWA } from 'vite-plugin-pwa';// 引入等比适配插件import px2rem from 'postcss-px2rem';import versionUpdatePlugin from './src/plugins/version';// 配置基本大小const postcss = px2rem({  // 基准大小 baseSize,需要和rem.js中相同  remUnit: 16});// eslint-disable-next-line @typescript-eslint/no-var-requiresconst path = require('path');function resolve(dir: string) {  return path.join(__dirname, dir);}// https://vitejs.dev/config/// https://github.com/vitejs/vite/issues/1930 .envconst proxyUrl = 'https://test.kt.colexiu.com/';// const proxyUrl = 'https://test.kt.colexiu.com';// const proxyUrl = 'http://192.168.3.14:7989';const now = new Date().getTime();export default defineConfig(() => {  return {    base: './',    plugins: [      vue(),      vueJsx(),      // viteESLint(),      Components({        dts: true,        resolvers: [NaiveUiResolver()]      }),      legacyPlugin({        targets: ['defaults', 'not IE 11'],        additionalLegacyPolyfills: ['regenerator-runtime/runtime'],        renderLegacyChunks: true,        polyfills: [          'es.symbol',          'es.promise',          'es.promise.finally',          'es/map',          'es/set',          'es.array.filter',          'es.array.for-each',          'es.array.flat-map',          'es.object.define-properties',          'es.object.define-property',          'es.object.get-own-property-descriptor',          'es.object.get-own-property-descriptors',          'es.object.keys',          'es.object.to-string',          'web.dom-collections.for-each',          'esnext.global-this',          'esnext.string.match-all'        ]      }),      VitePWA({        // injectRegister: 'auto',        registerType: 'prompt',        includeAssets: ['./logo.png'],        workbox: {          skipWaiting: false, // 强制跳过等待          clientsClaim: true, // 让新的 Service Worker 立即控制所有页面          navigateFallbackDenylist: [/^\/classroom/] // 避免在路由中使用 navigateFallback 时,导致路由无法正常跳转        },        manifest: {          name: '酷乐秀-音乐数字课堂',          short_name: '音乐数字课堂',          theme_color: '#E8EAED',          display: 'fullscreen',          icons: [            {              src: './logo.png',              sizes: '192x192',              type: 'image/png'            },            {              src: './logo.png',              sizes: '512x512',              type: 'image/png'            },            {              src: './logo.png',              sizes: '512x512',              type: 'image/png',              purpose: 'any maskable'            }          ],          prefer_related_applications: false,          related_applications: [            {              platform: 'webapp',              id: '1.0.0',              url: './manifest.webmanifest'            }          ]        },        devOptions: {          enabled: true        }      })      // versionUpdatePlugin({      //   version: now      // })    ],    define: {      // 定义全局变量      __APP_VERSION__: now    },    build: {      target: 'es2015',      rollupOptions: {        output: {          entryFileNames: `[name]-[hash]-${now}.js`,          chunkFileNames: `[name]-[hash]-${now}.js`,          assetFileNames: `[name]-[hash].[ext]`        }      }    },    resolve: {      alias: {        '@': resolve('./src'),        '@common': resolve('./src/common'),        '@components': resolve('./src/components'),        '@store': resolve('./src/store'),        '@views': resolve('./src/views')      }    },    server: {      host: '0.0.0.0',      port: 5005,      strictPort: true,      cors: true,      https: false,      proxy: {        '/edu-app': {          target: proxyUrl,          changeOrigin: true        }      }    }  };});
 |