| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- import { defineConfig, loadEnv } from 'vite';
 
- import createVitePlugins from './vite/plugins';
 
- import path from 'path';
 
- export default defineConfig(({ mode, command }) => {
 
- 	const env = loadEnv(mode, process.cwd());
 
- 	return {
 
- 		plugins: createVitePlugins(env, command === 'build'),
 
- 		base: env.VITE_APP_BASE,
 
- 		server: {
 
- 			// 允许IP访问
 
- 			host: '0.0.0.0',
 
- 			// 应用端口 (默认:3000)
 
- 			port: Number(env.VITE_APP_PORT),
 
- 			// 运行是否自动打开浏览器
 
- 			open: true,
 
- 			proxy: {
 
- 				/** 代理前缀为 /dev-api 的请求  */
 
- 				[env.VITE_APP_BASE_API]: {
 
- 					changeOrigin: true,
 
- 					// 接口地址
 
- 					target: env.VITE_APP_API_URL,
 
- 					rewrite: path => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), 'api'),
 
- 				},
 
- 			},
 
- 		},
 
- 		resolve: {
 
- 			alias: {
 
- 				// 设置路径
 
- 				'~': path.resolve(__dirname, './'),
 
- 				// 设置别名
 
- 				'@': path.resolve(__dirname, './src'),
 
- 			},
 
- 		},
 
- 		// 构建配置
 
- 		build: {
 
- 			chunkSizeWarningLimit: 2000, // 消除打包大小超过500kb警告
 
- 			minify: 'terser', // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
 
- 			terserOptions: {
 
- 				compress: {
 
- 					keep_infinity: true, // 防止 Infinity 被压缩成 1/0,这可能会导致 Chrome 上的性能问题
 
- 					drop_console: true, // 生产环境去除 console
 
- 					drop_debugger: true, // 生产环境去除 debugger
 
- 				},
 
- 				format: {
 
- 					comments: false, // 删除注释
 
- 				},
 
- 			},
 
- 			rollupOptions: {
 
- 				output: {
 
- 					// manualChunks: {
 
- 					//   "vue-i18n": ["vue-i18n"],
 
- 					// },
 
- 					// 用于从入口点创建的块的打包输出格式[name]表示文件名,[hash]表示该文件内容hash值
 
- 					entryFileNames: 'js/[name].[hash].js',
 
- 					// 用于命名代码拆分时创建的共享块的输出命名
 
- 					chunkFileNames: 'js/[name].[hash].js',
 
- 					// 用于输出静态资源的命名,[ext]表示文件扩展名
 
- 					assetFileNames: (assetInfo: any) => {
 
- 						const info = assetInfo.name.split('.');
 
- 						let extType = info[info.length - 1];
 
- 						if (/\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/i.test(assetInfo.name)) {
 
- 							extType = 'media';
 
- 						} else if (/\.(png|jpe?g|gif|svg)(\?.*)?$/.test(assetInfo.name)) {
 
- 							extType = 'img';
 
- 						} else if (/\.(woff2?|eot|ttf|otf)(\?.*)?$/i.test(assetInfo.name)) {
 
- 							extType = 'fonts';
 
- 						}
 
- 						return `${extType}/[name].[hash].[ext]`;
 
- 					},
 
- 				},
 
- 			},
 
- 		},
 
- 	};
 
- });
 
 
  |