| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /**
- * Copyright (c) 2013-Now https://jeesite.com All rights reserved.
- * No deletion without permission, or be held responsible to law.
- * @author ThinkGem
- */
- import { type PluginOption } from 'vite';
- import compressPlugin from 'vite-plugin-compression';
- /**
- * 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
- */
- export function configCompressPlugin(isBuild: boolean, viteEnv: ViteEnv): PluginOption {
- if (!isBuild) {
- return [];
- }
- const plugins: PluginOption = [];
- const compress: 'gzip' | 'brotli' | 'none' = viteEnv.VITE_BUILD_COMPRESS;
- const deleteOriginFile = viteEnv.VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE || false;
- const compressList = compress.split(',');
- if (compressList.includes('gzip')) {
- plugins.push(
- compressPlugin({
- ext: '.gz',
- deleteOriginFile,
- }),
- );
- }
- if (compressList.includes('brotli')) {
- plugins.push(
- compressPlugin({
- ext: '.br',
- algorithm: 'brotliCompress',
- deleteOriginFile,
- }),
- );
- }
- return plugins;
- }
|