lex il y a 11 mois
Parent
commit
0bc21ab8ac
1 fichiers modifiés avec 174 ajouts et 172 suppressions
  1. 174 172
      vite.config.ts

+ 174 - 172
vite.config.ts

@@ -1,172 +1,174 @@
-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-requires
-const path = require('path');
-
-function resolve(dir: string) {
-  return path.join(__dirname, dir);
-}
-// https://vitejs.dev/config/
-// https://github.com/vitejs/vite/issues/1930 .env
-const proxyUrl = 'https://dev.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({
-        registerType: 'autoUpdate',
-        includeAssets: ['./logo.png'],
-        workbox: {
-          skipWaiting: true
-          // runtimeCaching: [
-          //   {
-          //     urlPattern: /(.*?)\.(js|css|ts|tsx|html)/, // js /css /ts静态资源缓存
-          //     handler: 'NetworkOnly',
-          //     options: {
-          //       cacheName: 'js-css-cache'
-          //     }
-          //   },
-          //   {
-          //     urlPattern: /.*\.html.*/,
-          //     handler: 'NetworkOnly',
-          //     options: {
-          //       cacheName: 'wisbayar-html',
-          //       expiration: {
-          //         maxEntries: 20,
-          //         maxAgeSeconds: 30 * 24 * 60 * 60
-          //       },
-          //       cacheableResponse: {
-          //         statuses: [200]
-          //       }
-          //     }
-          //   }
-          // ]
-        },
-        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: 5002,
-      strictPort: true,
-      cors: true,
-      https: false,
-      proxy: {
-        '/edu-app': {
-          target: proxyUrl,
-          changeOrigin: true
-        }
-      }
-    }
-  };
-});
+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-requires
+const path = require('path');
+
+function resolve(dir: string) {
+  return path.join(__dirname, dir);
+}
+// https://vitejs.dev/config/
+// https://github.com/vitejs/vite/issues/1930 .env
+const proxyUrl = 'https://dev.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: 'autoUpdate',
+        includeAssets: ['./logo.png'],
+        workbox: {
+          skipWaiting: true,
+          clientsClaim: true
+          // runtimeCaching: [
+          //   {
+          //     urlPattern: /(.*?)\.(js|css|ts|tsx|html)/, // js /css /ts静态资源缓存
+          //     handler: 'NetworkOnly',
+          //     options: {
+          //       cacheName: 'js-css-cache'
+          //     }
+          //   },
+          //   {
+          //     urlPattern: /.*\.html.*/,
+          //     handler: 'NetworkOnly',
+          //     options: {
+          //       cacheName: 'wisbayar-html',
+          //       expiration: {
+          //         maxEntries: 20,
+          //         maxAgeSeconds: 24 * 60 * 60
+          //       },
+          //       cacheableResponse: {
+          //         statuses: [200]
+          //       }
+          //     }
+          //   }
+          // ]
+        },
+        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: 5002,
+      strictPort: true,
+      cors: true,
+      https: false,
+      proxy: {
+        '/edu-app': {
+          target: proxyUrl,
+          changeOrigin: true
+        }
+      }
+    }
+  };
+});