Parcourir la source

打包开启gzip压缩

zhangchong il y a 2 ans
Parent
commit
16d8fc281c
3 fichiers modifiés avec 118 ajouts et 21 suppressions
  1. 111 17
      package-lock.json
  2. 2 1
      package.json
  3. 5 3
      vite.config.ts

+ 111 - 17
package-lock.json

@@ -53,7 +53,8 @@
 				"sass-loader": "^13.2.0",
 				"typescript": "^4.9.3",
 				"vite": "^3.2.4",
-				"vite-plugin-vue-setup-extend": "^0.4.0",
+				"vite-plugin-compression": "^0.5.1",
+				"vite-plugin-vue-setup-extend-plus": "^0.1.0",
 				"vue-eslint-parser": "^9.1.0"
 			},
 			"engines": {
@@ -2498,6 +2499,29 @@
 				"node": ">= 6"
 			}
 		},
+		"node_modules/fs-extra": {
+			"version": "10.1.0",
+			"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
+			"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+			"dev": true,
+			"dependencies": {
+				"graceful-fs": "^4.2.0",
+				"jsonfile": "^6.0.1",
+				"universalify": "^2.0.0"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/fs-extra/node_modules/universalify": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+			"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+			"dev": true,
+			"engines": {
+				"node": ">= 10.0.0"
+			}
+		},
 		"node_modules/fs.realpath": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2610,8 +2634,7 @@
 			"version": "4.2.10",
 			"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
 			"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
-			"dev": true,
-			"peer": true
+			"dev": true
 		},
 		"node_modules/grapheme-splitter": {
 			"version": "1.0.4",
@@ -2890,6 +2913,27 @@
 			"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
 			"dev": true
 		},
+		"node_modules/jsonfile": {
+			"version": "6.1.0",
+			"resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+			"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+			"dev": true,
+			"dependencies": {
+				"universalify": "^2.0.0"
+			},
+			"optionalDependencies": {
+				"graceful-fs": "^4.1.6"
+			}
+		},
+		"node_modules/jsonfile/node_modules/universalify": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+			"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+			"dev": true,
+			"engines": {
+				"node": ">= 10.0.0"
+			}
+		},
 		"node_modules/klona": {
 			"version": "2.0.5",
 			"resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz",
@@ -4191,19 +4235,26 @@
 				}
 			}
 		},
-		"node_modules/vite-plugin-vue-setup-extend": {
-			"version": "0.4.0",
-			"resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz",
-			"integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==",
+		"node_modules/vite-plugin-compression": {
+			"version": "0.5.1",
+			"resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz",
+			"integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==",
 			"dev": true,
 			"dependencies": {
-				"@vue/compiler-sfc": "^3.2.29",
-				"magic-string": "^0.25.7"
+				"chalk": "^4.1.2",
+				"debug": "^4.3.3",
+				"fs-extra": "^10.0.0"
 			},
 			"peerDependencies": {
 				"vite": ">=2.0.0"
 			}
 		},
+		"node_modules/vite-plugin-vue-setup-extend-plus": {
+			"version": "0.1.0",
+			"resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend-plus/-/vite-plugin-vue-setup-extend-plus-0.1.0.tgz",
+			"integrity": "sha512-pa27KIsHIBvBMv4xz9uB3UCfAuP2tr7PLlFhCS9vw+aXd326LEHsvhqd3hCQDOR5MjlQVyQH6vwuGr3u+KRiiw==",
+			"dev": true
+		},
 		"node_modules/vue": {
 			"version": "3.2.45",
 			"resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
@@ -6318,6 +6369,25 @@
 				"mime-types": "^2.1.12"
 			}
 		},
+		"fs-extra": {
+			"version": "10.1.0",
+			"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
+			"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+			"dev": true,
+			"requires": {
+				"graceful-fs": "^4.2.0",
+				"jsonfile": "^6.0.1",
+				"universalify": "^2.0.0"
+			},
+			"dependencies": {
+				"universalify": {
+					"version": "2.0.0",
+					"resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+					"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+					"dev": true
+				}
+			}
+		},
 		"fs.realpath": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -6411,8 +6481,7 @@
 			"version": "4.2.10",
 			"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
 			"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
-			"dev": true,
-			"peer": true
+			"dev": true
 		},
 		"grapheme-splitter": {
 			"version": "1.0.4",
@@ -6645,6 +6714,24 @@
 			"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
 			"dev": true
 		},
+		"jsonfile": {
+			"version": "6.1.0",
+			"resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+			"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+			"dev": true,
+			"requires": {
+				"graceful-fs": "^4.1.6",
+				"universalify": "^2.0.0"
+			},
+			"dependencies": {
+				"universalify": {
+					"version": "2.0.0",
+					"resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+					"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+					"dev": true
+				}
+			}
+		},
 		"klona": {
 			"version": "2.0.5",
 			"resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz",
@@ -7590,16 +7677,23 @@
 				"rollup": "^2.79.1"
 			}
 		},
-		"vite-plugin-vue-setup-extend": {
-			"version": "0.4.0",
-			"resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz",
-			"integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==",
+		"vite-plugin-compression": {
+			"version": "0.5.1",
+			"resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz",
+			"integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==",
 			"dev": true,
 			"requires": {
-				"@vue/compiler-sfc": "^3.2.29",
-				"magic-string": "^0.25.7"
+				"chalk": "^4.1.2",
+				"debug": "^4.3.3",
+				"fs-extra": "^10.0.0"
 			}
 		},
+		"vite-plugin-vue-setup-extend-plus": {
+			"version": "0.1.0",
+			"resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend-plus/-/vite-plugin-vue-setup-extend-plus-0.1.0.tgz",
+			"integrity": "sha512-pa27KIsHIBvBMv4xz9uB3UCfAuP2tr7PLlFhCS9vw+aXd326LEHsvhqd3hCQDOR5MjlQVyQH6vwuGr3u+KRiiw==",
+			"dev": true
+		},
 		"vue": {
 			"version": "3.2.45",
 			"resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",

+ 2 - 1
package.json

@@ -57,7 +57,8 @@
 		"sass-loader": "^13.2.0",
 		"typescript": "^4.9.3",
 		"vite": "^3.2.4",
-		"vite-plugin-vue-setup-extend": "^0.4.0",
+		"vite-plugin-compression": "^0.5.1",
+		"vite-plugin-vue-setup-extend-plus": "^0.1.0",
 		"vue-eslint-parser": "^9.1.0"
 	},
 	"browserslist": [

+ 5 - 3
vite.config.ts

@@ -1,7 +1,8 @@
 import vue from '@vitejs/plugin-vue';
 import { resolve } from 'path';
 import { defineConfig, loadEnv, ConfigEnv } from 'vite';
-import vueSetupExtend from 'vite-plugin-vue-setup-extend'; // setup语法糖设置name
+import vueSetupExtend from 'vite-plugin-vue-setup-extend-plus'; // setup语法糖设置name
+import viteCompression from 'vite-plugin-compression'; //开启gzip打包压缩
 const pathResolve = (dir: string): any => {
 	return resolve(__dirname, '.', dir);
 };
@@ -14,7 +15,8 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
 	return {
 		plugins: [
 			vue(),
-			vueSetupExtend()
+			vueSetupExtend(),
+			viteCompression()
 		],
 		root: process.cwd(),
 		resolve: { alias },
@@ -59,7 +61,7 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
 			}
 		},
 		css: { preprocessorOptions: { css: { charset: false } } },
-		define:{
+		define: {
 			__HOTLINE_NAME__: JSON.stringify(process.env.npm_package_name),
 		}
 	};