@sveltejs/vite-plugin-svelte
Version:
The official [Svelte](https://svelte.dev) plugin for [Vite](https://vitejs.dev).
47 lines (43 loc) • 1.61 kB
JavaScript
/** @import { Options } from './public.js' */
/** @import { PluginAPI } from './types/plugin-api.js' */
/** @import { Plugin } from 'vite' */
import process from 'node:process';
import { log } from './utils/log.js';
import { configure } from './plugins/configure.js';
import { preprocess } from './plugins/preprocess.js';
import { compile } from './plugins/compile.js';
import { loadCompiledCss } from './plugins/load-compiled-css.js';
import { setupOptimizer } from './plugins/setup-optimizer.js';
import { compileModule } from './plugins/compile-module.js';
import { svelteInspector } from './plugins/inspector/index.js';
import { loadCustom } from './plugins/load-custom.js';
import { hotUpdate } from './plugins/hot-update.js';
/**
* returns a list of plugins to handle svelte files
* plugins are named `vite-plugin-svelte:<task>`
*
* @param {Partial<Options>} [inlineOptions]
* @returns {Plugin[]}
*/
export function svelte(inlineOptions) {
if (process.env.DEBUG != null) {
log.setLevel('debug');
}
/** @type {PluginAPI} */
// @ts-expect-error initialize empty to guard against early use
const api = {}; // initialized by configure plugin, used in others
return [
{ name: 'vite-plugin-svelte' }, // marker for detection logic in other plugins that expect this name
configure(api, inlineOptions),
setupOptimizer(api),
loadCompiledCss(api),
loadCustom(api),
preprocess(api),
compile(api),
compileModule(api),
hotUpdate(api),
svelteInspector(api)
];
}
export { vitePreprocess } from './preprocess.js';
export { loadSvelteConfig } from './utils/load-svelte-config.js';