33 lines
		
	
	
		
			859 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			859 B
		
	
	
	
		
			TypeScript
		
	
	
| /**
 | |
|  * Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
 | |
|  * https://github.com/anncwb/vite-plugin-compression
 | |
|  */
 | |
| import type { PluginOption } from 'vite';
 | |
| import compressPlugin from 'vite-plugin-compression';
 | |
| 
 | |
| export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none', deleteOriginFile = false): PluginOption | PluginOption[] {
 | |
|   const compressList = compress.split(',');
 | |
| 
 | |
|   const plugins: PluginOption[] = [];
 | |
| 
 | |
|   if (compressList.includes('gzip')) {
 | |
|     plugins.push(
 | |
|       compressPlugin({
 | |
|         ext: '.gz',
 | |
|         deleteOriginFile,
 | |
|       })
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   if (compressList.includes('brotli')) {
 | |
|     plugins.push(
 | |
|       compressPlugin({
 | |
|         ext: '.br',
 | |
|         algorithm: 'brotliCompress',
 | |
|         deleteOriginFile,
 | |
|       })
 | |
|     );
 | |
|   }
 | |
|   return plugins;
 | |
| }
 |