@plugin-light/project-config-uni-vite
Version:
开箱即用的项目配置,适用于 uni-app Vue3.x 项目
100 lines (99 loc) • 2.9 kB
TypeScript
/// <reference types="node" />
import type { BuildOptions, CommonServerOptions, Plugin, ServerOptions } from 'vite';
import tailwindcss from 'tailwindcss';
import type { Options as RemoveSelectorOptions } from '@plugin-light/postcss-plugin-remove-selector';
import type { Options as TransformWebTagOptions } from '@plugin-light/postcss-plugin-transform-web-tag';
import type { ICrossGameStyleOptions } from '@plugin-light/vite-plugin-cross-game-style';
import type { IRemoveVueDirectionOptions } from '@plugin-light/vite-plugin-remove-vue-directive';
import type { UniTailwindPluginUserOptions } from '@uni-helper/vite-plugin-uni-tailwind';
import type { Options as LegacyOptions } from '@vitejs/plugin-legacy';
import type { Server } from 'node:https';
import type { Options as ESBuildOptions } from 'rollup-plugin-esbuild';
export interface IUniViteConfigOptions {
/**
* 模式
*/
mode: string;
/**
* uni 插件
*/
uni: any;
/**
* 端口,传递给 server.port
*
* @default 443
*/
port?: CommonServerOptions['port'];
/**
* https 配置,传递给 server.https
*/
https?: Server;
/**
* host 配置,传递给 server.host
* @default true
*/
host?: CommonServerOptions['host'];
/**
* 前置插件
*/
prePlugins?: Array<Plugin>;
/**
* 后置插件
*/
postPlugins?: Array<Plugin>;
/**
* 对应 optimizeDeps.include
*/
optimizeDepsIncludes?: Array<string>;
/**
* remove-vue-direction 插件参数
*/
removeVueDirectionOptions?: IRemoveVueDirectionOptions;
/**
* hmr 选项
* @default { timeout: 1000 * 60 * 5 }
*/
hmr?: ServerOptions['hmr'];
/**
* 语法警报列表,比如 v-model,destroyed
*/
warnList?: ICrossGameStyleOptions['warnList'];
/**
* transform-web-tag postcss 插件参数
*/
transformWebTagOptions?: boolean | TransformWebTagOptions;
/**
* remove selector postcss 插件参数
*/
removeSelectorOptions?: boolean | RemoveSelectorOptions;
/**
* uniTailwind 插件参数
*/
uniTailwindOptions?: boolean | UniTailwindPluginUserOptions;
/**
* tailwindcss postcss 插件参数
*/
tailwindcssOptions?: boolean | Parameters<typeof tailwindcss>[0];
/**
* 构建选项
*/
buildOptions?: BuildOptions;
/**
* 是否使用 chunk-split
* @default false
*/
useChunkSplit?: boolean;
/**
* 是否使用 @vitejs/plugin-legacy,传递对象格式将作为插件参数
* @default false
*/
useLegacy?: boolean | LegacyOptions;
/**
* 传递给 uni 插件的参数
*/
uniOptions?: any;
/**
* 是否使用 rollup-plugin-esbuild,传递对象格式将作为插件参数
*/
useESBuildPlugin?: boolean | ESBuildOptions;
}