You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.8 KiB
103 lines
3.8 KiB
1 month ago
|
import { ViteDevServer, Plugin } from 'vite';
|
||
|
import * as _compiler from 'vue/compiler-sfc';
|
||
|
import { SFCScriptCompileOptions, SFCTemplateCompileOptions, SFCStyleCompileOptions } from 'vue/compiler-sfc';
|
||
|
|
||
|
interface VueQuery {
|
||
|
vue?: boolean;
|
||
|
src?: string;
|
||
|
type?: 'script' | 'template' | 'style' | 'custom';
|
||
|
index?: number;
|
||
|
lang?: string;
|
||
|
raw?: boolean;
|
||
|
url?: boolean;
|
||
|
scoped?: boolean;
|
||
|
id?: string;
|
||
|
}
|
||
|
declare function parseVueRequest(id: string): {
|
||
|
filename: string;
|
||
|
query: VueQuery;
|
||
|
};
|
||
|
|
||
|
interface Options {
|
||
|
include?: string | RegExp | (string | RegExp)[];
|
||
|
exclude?: string | RegExp | (string | RegExp)[];
|
||
|
/**
|
||
|
* In Vite, this option follows Vite's config.
|
||
|
*/
|
||
|
isProduction?: boolean;
|
||
|
script?: Partial<Omit<SFCScriptCompileOptions, 'id' | 'isProd' | 'inlineTemplate' | 'templateOptions' | 'sourceMap' | 'genDefaultAs' | 'customElement' | 'defineModel' | 'propsDestructure'>> & {
|
||
|
/**
|
||
|
* @deprecated defineModel is now a stable feature and always enabled if
|
||
|
* using Vue 3.4 or above.
|
||
|
*/
|
||
|
defineModel?: boolean;
|
||
|
/**
|
||
|
* @deprecated moved to `features.propsDestructure`.
|
||
|
*/
|
||
|
propsDestructure?: boolean;
|
||
|
};
|
||
|
template?: Partial<Omit<SFCTemplateCompileOptions, 'id' | 'source' | 'ast' | 'filename' | 'scoped' | 'slotted' | 'isProd' | 'inMap' | 'ssr' | 'ssrCssVars' | 'preprocessLang'>>;
|
||
|
style?: Partial<Omit<SFCStyleCompileOptions, 'filename' | 'id' | 'isProd' | 'source' | 'scoped' | 'cssDevSourcemap' | 'postcssOptions' | 'map' | 'postcssPlugins' | 'preprocessCustomRequire' | 'preprocessLang' | 'preprocessOptions'>>;
|
||
|
/**
|
||
|
* Use custom compiler-sfc instance. Can be used to force a specific version.
|
||
|
*/
|
||
|
compiler?: typeof _compiler;
|
||
|
/**
|
||
|
* Requires @vitejs/plugin-vue@^5.1.0
|
||
|
*/
|
||
|
features?: {
|
||
|
/**
|
||
|
* Enable reactive destructure for `defineProps`.
|
||
|
* - Available in Vue 3.4 and later.
|
||
|
* - **default:** `false` in Vue 3.4 (**experimental**), `true` in Vue 3.5+
|
||
|
*/
|
||
|
propsDestructure?: boolean;
|
||
|
/**
|
||
|
* Transform Vue SFCs into custom elements.
|
||
|
* - `true`: all `*.vue` imports are converted into custom elements
|
||
|
* - `string | RegExp`: matched files are converted into custom elements
|
||
|
* - **default:** /\.ce\.vue$/
|
||
|
*/
|
||
|
customElement?: boolean | string | RegExp | (string | RegExp)[];
|
||
|
/**
|
||
|
* Set to `false` to disable Options API support and allow related code in
|
||
|
* Vue core to be dropped via dead-code elimination in production builds,
|
||
|
* resulting in smaller bundles.
|
||
|
* - **default:** `true`
|
||
|
*/
|
||
|
optionsAPI?: boolean;
|
||
|
/**
|
||
|
* Set to `true` to enable devtools support in production builds.
|
||
|
* Results in slightly larger bundles.
|
||
|
* - **default:** `false`
|
||
|
*/
|
||
|
prodDevtools?: boolean;
|
||
|
/**
|
||
|
* Set to `true` to enable detailed information for hydration mismatch
|
||
|
* errors in production builds. Results in slightly larger bundles.
|
||
|
* - **default:** `false`
|
||
|
*/
|
||
|
prodHydrationMismatchDetails?: boolean;
|
||
|
};
|
||
|
/**
|
||
|
* @deprecated moved to `features.customElement`.
|
||
|
*/
|
||
|
customElement?: boolean | string | RegExp | (string | RegExp)[];
|
||
|
}
|
||
|
interface ResolvedOptions extends Options {
|
||
|
compiler: typeof _compiler;
|
||
|
root: string;
|
||
|
sourceMap: boolean;
|
||
|
cssDevSourcemap: boolean;
|
||
|
devServer?: ViteDevServer;
|
||
|
devToolsEnabled?: boolean;
|
||
|
}
|
||
|
interface Api {
|
||
|
get options(): ResolvedOptions;
|
||
|
set options(value: ResolvedOptions);
|
||
|
version: string;
|
||
|
}
|
||
|
declare function vuePlugin(rawOptions?: Options): Plugin<Api>;
|
||
|
|
||
|
export { type Api, type Options, type ResolvedOptions, type VueQuery, vuePlugin as default, parseVueRequest };
|