瀏覽代碼

Merge branch 'feature-tianyong' into gym-dev

TIANYONG 2 月之前
父節點
當前提交
3271cc2633
共有 1 個文件被更改,包括 30 次插入0 次删除
  1. 30 0
      vite.config.ts

+ 30 - 0
vite.config.ts

@@ -14,6 +14,17 @@ export default defineConfig({
   // assetsInclude: ['**/*.html'],
   plugins: [
     // mkcert(), // 本地https
+        // 其他插件...
+    viteCompression({
+      algorithm: "gzip", // 指定压缩算法为gzip,[ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw']
+      ext: ".gz", // 指定压缩后的文件扩展名为.gz
+      threshold: 10240, // 仅对文件大小大于threshold的文件进行压缩,默认为10KB
+      deleteOriginFile: false, // 是否删除原始文件,默认为false
+      filter: /\.(js|css|json|html|ico|svg)(\?.*)?$/i, // 匹配要压缩的文件的正则表达式,默认为匹配.js、.css、.json、.html、.ico和.svg文件
+      compressionOptions: { level: 9 }, // 指定gzip压缩级别,默认为9(最高级别)
+      verbose: true, //是否在控制台输出压缩结果
+      disable: false, //是否禁用插件
+    }),
     legacy({
       targets: ["Chrome 63"],
       additionalLegacyPolyfills: ["regenerator-runtime/runtime"],
@@ -35,11 +46,30 @@ export default defineConfig({
     },
   },
   build: {
+    minify: 'terser', // 启用 terser 压缩  
+    terserOptions: {  
+        compress: {  
+            pure_funcs: ['console.log'], // 只删除 console.log 
+            //drop_console: true, // 删除所有 console
+            drop_debugger: true, // 删除 debugger  
+        }  
+    },
     rollupOptions: {
       input: {
         instrument: resolve(__dirname, "instrument.html"),
       },
       output: {
+        // 最小化拆分包
+        manualChunks(id) {
+          if (id.includes("osmd-extended")) {
+            // 通过拆分包的方式将所有来自osmd-extended的模块打包到单独的chunk中
+            return id
+              .toString()
+              .split("osmd-extended/")[1]
+              .split("/")[0]
+              .toString();
+          }
+        },
         chunkFileNames: "js/[name]-[hash].js", // 引入文件名的名称
         entryFileNames: "js/[name]-[hash].js", // 包的入口文件名称
         assetFileNames: "[ext]/[name]-[hash].[ext]", // 资源文件像 字体,图片等