@minko-fe/vite-config
Version:
69 lines (64 loc) • 1.86 kB
text/typescript
/// <reference types="vite/client" />
import tsconfigPaths from 'vite-tsconfig-paths';
import { UserConfig, ConfigEnv } from 'vite';
import { VitePublicTypescriptOptions } from 'vite-plugin-public-typescript';
import { VitePluginSvgrOptions } from 'vite-plugin-svgr';
import { viteVConsoleOptions } from 'vite-plugin-vconsole';
import pluginLegacy from '@vitejs/plugin-legacy';
interface CompressOptions {
compress?: 'gzip' | 'brotli' | 'none';
deleteOriginFile?: boolean;
}
type LegacyOptions = Parameters<typeof pluginLegacy>[0];
interface PluginOptions {
/**
* @default
* { svgrOptions: { icon: true } }
*/
svgr?: VitePluginSvgrOptions | false;
/**
* @default false
*/
compress?: CompressOptions | false;
/**
* @default
* ```
* {
renderLegacyChunks: true,
renderModernChunks: true,
polyfills: true,
modernPolyfills: true,
additionalLegacyPolyfills: ['core-js/proposals/global-this'],
}
* ```
*/
legacy?: LegacyOptions | false;
/**
* @default false
*/
publicTypescript?: VitePublicTypescriptOptions | false;
/**
* @default
* when csr and not legacy render
* @suggestion
* disable if you want legacy render
*/
splitVendorChunk?: boolean;
/**
* @default true
*/
logAppInfo?: boolean;
/**
* @default true when process.env.NODE_ENV === 'development' or 'test'
*/
vConsole?: boolean | viteVConsoleOptions;
/**
* tsconfig alias
* @default true
*/
tsconfigPaths?: boolean | Parameters<typeof tsconfigPaths>[0];
}
declare const enhanceViteConfig: (userConfig: UserConfig & {
env: ConfigEnv;
}, options?: PluginOptions) => Promise<Record<string, any>>;
export { enhanceViteConfig as default, enhanceViteConfig };