vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
59 lines (58 loc) • 2.69 kB
JavaScript
export default plugin;
export { plugin };
// TODO/v1-release: remove
export { plugin as ssr };
export { getVikeConfigPublic as getVikeConfig } from './plugins/commonConfig.js';
export { PROJECT_VERSION as version } from './utils.js';
import { assertUsage } from './utils.js';
import { build } from './plugins/build.js';
import { previewConfig } from './plugins/previewConfig.js';
import { devConfig } from './plugins/devConfig/index.js';
import { importUserCode } from './plugins/importUserCode/index.js';
import { extractAssetsPlugin } from './plugins/extractAssetsPlugin.js';
import { extractExportNamesPlugin } from './plugins/extractExportNamesPlugin.js';
import { setGlobalContext } from './plugins/setGlobalContext.js';
import { commonConfig } from './plugins/commonConfig.js';
import { baseUrls } from './plugins/baseUrls.js';
import { envVarsPlugin } from './plugins/envVars.js';
import pc from '@brillout/picocolors';
import { fileEnv } from './plugins/fileEnv.js';
import { setResolveClientEntriesDev } from '../runtime/renderPage/getPageAssets.js';
import { resolveClientEntriesDev } from './shared/resolveClientEntriesDev.js';
import { workaroundCssModuleHmr } from './plugins/workaroundCssModuleHmr.js';
import { workaroundVite6HmrRegression } from './plugins/workaroundVite6HmrRegression.js';
// We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
setResolveClientEntriesDev(resolveClientEntriesDev);
// Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
function plugin(vikeVitePluginOptions = {}) {
const plugins = [
...commonConfig(vikeVitePluginOptions),
importUserCode(),
...devConfig(),
...build(),
previewConfig(),
...extractAssetsPlugin(),
extractExportNamesPlugin(),
...setGlobalContext(),
baseUrls(),
envVarsPlugin(),
fileEnv(),
workaroundCssModuleHmr(),
workaroundVite6HmrRegression()
];
Object.assign(plugins, { __vikeVitePluginOptions: vikeVitePluginOptions });
return plugins;
}
// Error upon wrong usage
Object.defineProperty(plugin, 'apply', {
enumerable: true,
get: () => {
assertUsage(false, `Add ${pc.cyan('vike()')} instead of ${pc.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
}
});
// CJS default export `const vike = require('vike/plugin')`
// - It needs to live at the end of this file, in order to ensure we do it after all assignments to `exports`.
try {
module.exports = Object.assign(exports.default, exports);
}
catch { }