vike 0.4.223 → 0.4.224

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/cjs/node/api/build.js +4 -37
  2. package/dist/cjs/node/api/prepareViteApiCall.js +9 -3
  3. package/dist/cjs/node/plugin/index.js +8 -20
  4. package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -1
  5. package/dist/cjs/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +130 -52
  6. package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +145 -0
  7. package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +52 -0
  8. package/dist/cjs/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -84
  9. package/dist/cjs/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
  10. package/dist/cjs/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
  11. package/dist/cjs/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +6 -6
  12. package/dist/cjs/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
  13. package/dist/cjs/node/plugin/plugins/build.js +21 -0
  14. package/dist/cjs/node/plugin/plugins/commonConfig.js +22 -4
  15. package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
  16. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  17. package/dist/cjs/node/plugin/plugins/envVars.js +2 -2
  18. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +9 -9
  19. package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
  20. package/dist/cjs/node/plugin/plugins/fileEnv.js +5 -2
  21. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
  22. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +2 -5
  23. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
  24. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
  25. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +16 -0
  26. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
  27. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
  28. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
  29. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +19 -7
  30. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +277 -212
  31. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
  32. package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
  33. package/dist/cjs/node/plugin/shared/getOutDirs.js +8 -7
  34. package/dist/cjs/node/plugin/shared/isViteServerBuild.js +47 -0
  35. package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +1 -1
  36. package/dist/cjs/node/plugin/utils.js +1 -0
  37. package/dist/cjs/node/prerender/context.js +3 -8
  38. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +23 -21
  39. package/dist/cjs/node/prerender/runPrerender.js +28 -28
  40. package/dist/cjs/node/prerender/utils.js +1 -0
  41. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +7 -1
  42. package/dist/cjs/shared/getPageContextUrlComputed.js +1 -1
  43. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +2 -5
  44. package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +3 -1
  45. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +20 -9
  46. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  47. package/dist/cjs/utils/findFile.js +1 -1
  48. package/dist/cjs/utils/findPackageJson.js +1 -1
  49. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +10 -4
  50. package/dist/cjs/utils/path.js +1 -0
  51. package/dist/cjs/utils/requireResolve.js +11 -4
  52. package/dist/cjs/utils/sorter.js +0 -3
  53. package/dist/esm/client/client-routing-runtime/index.d.ts +1 -0
  54. package/dist/esm/client/client-routing-runtime/index.js +1 -0
  55. package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
  56. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +10 -1
  57. package/dist/esm/node/api/build.js +4 -4
  58. package/dist/esm/node/api/prepareViteApiCall.js +9 -3
  59. package/dist/esm/node/plugin/index.d.ts +2 -1
  60. package/dist/esm/node/plugin/index.js +4 -17
  61. package/dist/esm/node/plugin/plugins/baseUrls.js +3 -1
  62. package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.d.ts +18 -0
  63. package/dist/esm/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +131 -53
  64. package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.d.ts +5 -0
  65. package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +140 -0
  66. package/dist/esm/node/plugin/plugins/build/pluginBuildApp.d.ts +3 -0
  67. package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +50 -0
  68. package/dist/esm/node/plugin/plugins/{buildConfig.d.ts → build/pluginBuildConfig.d.ts} +3 -3
  69. package/dist/esm/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -81
  70. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +7 -0
  71. package/dist/esm/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
  72. package/dist/esm/node/plugin/plugins/build/pluginDistFileNames.d.ts +3 -0
  73. package/dist/esm/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
  74. package/dist/esm/node/plugin/plugins/build/pluginDistPackageJsonFile.d.ts +3 -0
  75. package/dist/esm/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +7 -6
  76. package/dist/esm/node/plugin/plugins/build/pluginSuppressRollupWarning.d.ts +3 -0
  77. package/dist/esm/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
  78. package/dist/esm/node/plugin/plugins/build.d.ts +3 -0
  79. package/dist/esm/node/plugin/plugins/build.js +19 -0
  80. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +15 -6
  81. package/dist/esm/node/plugin/plugins/commonConfig.js +22 -4
  82. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
  83. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  84. package/dist/esm/node/plugin/plugins/envVars.js +2 -2
  85. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +10 -10
  86. package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
  87. package/dist/esm/node/plugin/plugins/fileEnv.js +5 -2
  88. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
  89. package/dist/esm/node/plugin/plugins/importUserCode/index.js +2 -5
  90. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
  91. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
  92. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -0
  93. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +13 -0
  94. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  95. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
  96. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
  97. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
  98. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +0 -1
  99. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +20 -8
  100. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -6
  101. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +279 -214
  102. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
  103. package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
  104. package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +1 -3
  105. package/dist/esm/node/plugin/shared/getOutDirs.d.ts +2 -2
  106. package/dist/esm/node/plugin/shared/getOutDirs.js +8 -7
  107. package/dist/esm/node/plugin/shared/isViteServerBuild.d.ts +15 -0
  108. package/dist/esm/node/plugin/shared/isViteServerBuild.js +45 -0
  109. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +1 -1
  110. package/dist/esm/node/plugin/utils.d.ts +1 -0
  111. package/dist/esm/node/plugin/utils.js +1 -0
  112. package/dist/esm/node/prerender/context.d.ts +0 -2
  113. package/dist/esm/node/prerender/context.js +4 -9
  114. package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +10 -6
  115. package/dist/esm/node/prerender/resolvePrerenderConfig.js +24 -22
  116. package/dist/esm/node/prerender/runPrerender.d.ts +7 -25
  117. package/dist/esm/node/prerender/runPrerender.js +29 -29
  118. package/dist/esm/node/prerender/utils.d.ts +1 -0
  119. package/dist/esm/node/prerender/utils.js +1 -0
  120. package/dist/esm/node/runtime/globalContext.d.ts +2 -1
  121. package/dist/esm/node/runtime/renderPage/logErrorHint.js +7 -1
  122. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +165 -5
  123. package/dist/esm/shared/getPageContextUrlComputed.js +1 -1
  124. package/dist/esm/shared/page-configs/Config.d.ts +12 -2
  125. package/dist/esm/shared/page-configs/PageConfig.d.ts +5 -5
  126. package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +2 -5
  127. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +3 -1
  128. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
  129. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +20 -9
  130. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  131. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  132. package/dist/esm/utils/findFile.js +1 -1
  133. package/dist/esm/utils/findPackageJson.js +1 -1
  134. package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +8 -2
  135. package/dist/esm/utils/path.js +1 -0
  136. package/dist/esm/utils/projectInfo.d.ts +1 -1
  137. package/dist/esm/utils/requireResolve.js +11 -4
  138. package/dist/esm/utils/sorter.d.ts +18 -5
  139. package/dist/esm/utils/sorter.js +0 -3
  140. package/package.json +8 -16
  141. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +0 -119
  142. package/dist/cjs/node/plugin/plugins/buildApp.js +0 -76
  143. package/dist/cjs/node/plugin/plugins/removeRequireHookPlugin.js +0 -17
  144. package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +0 -20
  145. package/dist/cjs/node/plugin/shared/viteIsSSR.js +0 -31
  146. package/dist/esm/node/plugin/plugins/autoFullBuild.d.ts +0 -3
  147. package/dist/esm/node/plugin/plugins/autoFullBuild.js +0 -114
  148. package/dist/esm/node/plugin/plugins/buildApp.d.ts +0 -3
  149. package/dist/esm/node/plugin/plugins/buildApp.js +0 -74
  150. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -20
  151. package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +0 -8
  152. package/dist/esm/node/plugin/plugins/distFileNames.d.ts +0 -3
  153. package/dist/esm/node/plugin/plugins/packageJsonFile.d.ts +0 -3
  154. package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.d.ts +0 -3
  155. package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.js +0 -15
  156. package/dist/esm/node/plugin/plugins/suppressRollupWarning.d.ts +0 -3
  157. package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +0 -2
  158. package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +0 -17
  159. package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +0 -11
  160. package/dist/esm/node/plugin/shared/viteIsSSR.js +0 -29
  161. package/dist-cjs-fixup.mjs +0 -41
@@ -0,0 +1,140 @@
1
+ export { pluginAutoFullBuild };
2
+ export { isPrerenderForceExit };
3
+ import { build } from 'vite';
4
+ import { assert, assertIsSingleModuleInstance, assertWarning, onSetupBuild } from '../../utils.js';
5
+ import { runPrerenderFromAutoRun, runPrerender_forceExit } from '../../../prerender/runPrerender.js';
6
+ import { isPrerenderAutoRunEnabled } from '../../../prerender/context.js';
7
+ import { isViteCliCall, getViteConfigFromCli } from '../../shared/isViteCliCall.js';
8
+ import pc from '@brillout/picocolors';
9
+ import { logErrorHint } from '../../../runtime/renderPage/logErrorHint.js';
10
+ import { manifestTempFile } from './pluginBuildConfig.js';
11
+ import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
12
+ import { isVikeCliOrApi } from '../../../api/context.js';
13
+ import { handleAssetsManifest, handleAssetsManifest_assertUsageCssTarget } from './handleAssetsManifest.js';
14
+ import { isViteClientBuild, isViteServerBuild_onlySsrEnv } from '../../shared/isViteServerBuild.js';
15
+ assertIsSingleModuleInstance('build/pluginAutoFullBuild.ts');
16
+ let forceExit = false;
17
+ function pluginAutoFullBuild() {
18
+ let config;
19
+ let vikeConfig;
20
+ return [
21
+ {
22
+ name: 'vike:build:pluginAutoFullBuild',
23
+ apply: 'build',
24
+ enforce: 'pre',
25
+ async configResolved(config_) {
26
+ vikeConfig = await getVikeConfig(config_);
27
+ config = config_;
28
+ abortViteBuildSsr(vikeConfig);
29
+ },
30
+ writeBundle: {
31
+ /* We can't use this because it breaks Vite's logging. TODO/eventually: try again with latest Vite version.
32
+ sequential: true,
33
+ order: 'pre',
34
+ */
35
+ async handler(options, bundle) {
36
+ await handleAssetsManifest(config, this.environment, options, bundle);
37
+ await triggerFullBuild(config, vikeConfig, this.environment, bundle);
38
+ }
39
+ }
40
+ },
41
+ {
42
+ name: 'vike:build:pluginAutoFullBuild:forceExit',
43
+ apply: 'build',
44
+ enforce: 'post',
45
+ closeBundle: {
46
+ sequential: true,
47
+ order: 'post',
48
+ handler() {
49
+ onSetupBuild();
50
+ handleAssetsManifest_assertUsageCssTarget(config);
51
+ if (forceExit &&
52
+ // Let vike:build:pluginBuildApp force exit
53
+ !vikeConfig.global.config.vite6BuilderApp) {
54
+ runPrerender_forceExit();
55
+ assert(false);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ];
61
+ }
62
+ async function triggerFullBuild(config, vikeConfig, viteEnv, bundle) {
63
+ // Whether builder.buildApp() is being used, see plugin:build:pluginBuildApp
64
+ const isBuilderApp = vikeConfig.global.config.vite6BuilderApp;
65
+ // If builder.buildApp() => trigger at end of `this.environment.name === 'ssr'`.
66
+ // Else => trigger at end of client-side build.
67
+ if (isBuilderApp ? !isViteServerBuild_onlySsrEnv(config, viteEnv) : !isViteClientBuild(config, viteEnv))
68
+ return;
69
+ if (isEntirelyDisabled(vikeConfig))
70
+ return;
71
+ // Workaround for @vitejs/plugin-legacy
72
+ // - The legacy plugin triggers its own Rollup build for the client-side.
73
+ // - The legacy plugin doesn't generate a manifest => we can use that to detect the legacy plugin build.
74
+ // - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
75
+ if (!bundle[manifestTempFile])
76
+ return;
77
+ const configInline = getFullBuildInlineConfig(config);
78
+ if (!isBuilderApp) {
79
+ try {
80
+ await build(setSSR(configInline));
81
+ }
82
+ catch (err) {
83
+ // Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
84
+ console.error(err);
85
+ logErrorHint(err);
86
+ process.exit(1);
87
+ }
88
+ }
89
+ else {
90
+ // The server bulid is already called by builder.buildApp()
91
+ }
92
+ if (isPrerenderAutoRunEnabled(vikeConfig)) {
93
+ const res = await runPrerenderFromAutoRun(configInline, config);
94
+ forceExit = res.forceExit;
95
+ }
96
+ }
97
+ function setSSR(configInline) {
98
+ return {
99
+ ...configInline,
100
+ build: {
101
+ ...configInline.build,
102
+ ssr: true
103
+ }
104
+ };
105
+ }
106
+ function abortViteBuildSsr(vikeConfig) {
107
+ if (vikeConfig.global.config.disableAutoFullBuild !== true && isViteCliCall() && getViteConfigFromCli()?.build.ssr) {
108
+ assertWarning(false, `The CLI call ${pc.cyan('$ vite build --ssr')} is superfluous since ${pc.cyan('$ vite build')} also builds the server-side. If you want two separate build steps then use https://vike.dev/disableAutoFullBuild or use Vite's ${pc.cyan('build()')} API.`, { onlyOnce: true });
109
+ process.exit(0);
110
+ }
111
+ }
112
+ function isEntirelyDisabled(vikeConfig) {
113
+ const { disableAutoFullBuild } = vikeConfig.global.config;
114
+ if (disableAutoFullBuild === undefined || disableAutoFullBuild === 'prerender') {
115
+ const isUserUsingViteApi = !isViteCliCall() && !isVikeCliOrApi();
116
+ return isUserUsingViteApi;
117
+ }
118
+ else {
119
+ return disableAutoFullBuild;
120
+ }
121
+ }
122
+ function isPrerenderForceExit() {
123
+ return forceExit;
124
+ }
125
+ function getFullBuildInlineConfig(config) {
126
+ const configFromCli = !isViteCliCall() ? null : getViteConfigFromCli();
127
+ if (config._viteConfigEnhanced) {
128
+ return config._viteConfigEnhanced;
129
+ }
130
+ else {
131
+ return {
132
+ ...configFromCli,
133
+ configFile: configFromCli?.configFile || config.configFile,
134
+ root: config.root,
135
+ build: {
136
+ ...configFromCli?.build
137
+ }
138
+ };
139
+ }
140
+ }
@@ -0,0 +1,3 @@
1
+ export { pluginBuildApp };
2
+ import type { Plugin } from 'vite';
3
+ declare function pluginBuildApp(): Plugin[];
@@ -0,0 +1,50 @@
1
+ export { pluginBuildApp };
2
+ import { runPrerender_forceExit } from '../../../prerender/runPrerender.js';
3
+ import { resolveOutDir } from '../../shared/getOutDirs.js';
4
+ import { assert } from '../../utils.js';
5
+ import { getVikeConfigPublic } from '../commonConfig.js';
6
+ import { isPrerenderForceExit } from './pluginAutoFullBuild.js';
7
+ function pluginBuildApp() {
8
+ return [
9
+ {
10
+ name: 'vike:build:pluginBuildApp',
11
+ apply: 'build',
12
+ config(config) {
13
+ const vike = getVikeConfigPublic(config);
14
+ if (!vike.config.vite6BuilderApp)
15
+ return;
16
+ return {
17
+ builder: {
18
+ // Can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
19
+ async buildApp(builder) {
20
+ assert(builder.environments.client);
21
+ assert(builder.environments.ssr);
22
+ await builder.build(builder.environments.client);
23
+ await builder.build(builder.environments.ssr);
24
+ if (isPrerenderForceExit()) {
25
+ runPrerender_forceExit();
26
+ assert(false);
27
+ }
28
+ }
29
+ },
30
+ environments: {
31
+ ssr: {
32
+ consumer: 'server',
33
+ build: {
34
+ outDir: resolveOutDir(config, true),
35
+ ssr: true
36
+ }
37
+ },
38
+ client: {
39
+ consumer: 'client',
40
+ build: {
41
+ copyPublicDir: true,
42
+ ssr: false
43
+ }
44
+ }
45
+ }
46
+ };
47
+ }
48
+ }
49
+ ];
50
+ }
@@ -1,11 +1,11 @@
1
- export { buildConfig };
1
+ export { pluginBuildConfig };
2
2
  export { assertRollupInput };
3
3
  export { analyzeClientEntries };
4
4
  export { manifestTempFile };
5
5
  import type { ResolvedConfig, Plugin } from 'vite';
6
- import type { PageConfigBuildTime } from '../../../shared/page-configs/PageConfig.js';
6
+ import type { PageConfigBuildTime } from '../../../../shared/page-configs/PageConfig.js';
7
7
  declare const manifestTempFile = "_temp_manifest.json";
8
- declare function buildConfig(): Plugin[];
8
+ declare function pluginBuildConfig(): Plugin[];
9
9
  declare function analyzeClientEntries(pageConfigs: PageConfigBuildTime[], config: ResolvedConfig): {
10
10
  hasClientRouting: boolean;
11
11
  hasServerRouting: boolean;
@@ -1,56 +1,41 @@
1
- export { buildConfig };
1
+ export { pluginBuildConfig };
2
2
  export { assertRollupInput };
3
3
  export { analyzeClientEntries };
4
4
  export { manifestTempFile };
5
- import { assert, addOnBeforeLogHook, removeFileExtention, unique, assertUsage, injectRollupInputs, normalizeRollupInput, onSetupBuild, assertIsNpmPackageImport } from '../utils.js';
6
- import { getVikeConfig, isV1Design } from './importUserCode/v1-design/getVikeConfig.js';
7
- import { findPageFiles } from '../shared/findPageFiles.js';
8
- import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
9
- import { extractAssetsAddQuery } from '../../shared/extractAssetsQuery.js';
5
+ import { assert, addOnBeforeLogHook, removeFileExtention, unique, assertUsage, injectRollupInputs, normalizeRollupInput, onSetupBuild, assertIsNpmPackageImport } from '../../utils.js';
6
+ import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
7
+ import { findPageFiles } from '../../shared/findPageFiles.js';
8
+ import { getVirtualFileIdPageConfigValuesAll } from '../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
9
+ import { extractAssetsAddQuery } from '../../../shared/extractAssetsQuery.js';
10
10
  import { createRequire } from 'module';
11
- import fs from 'fs/promises';
12
- import path from 'path';
13
- import { fixServerAssets, fixServerAssets_assertCssCodeSplit, fixServerAssets_assertCssTarget, fixServerAssets_isEnabled } from './buildConfig/fixServerAssets.js';
14
- import { set_ASSETS_MANIFEST } from './buildEntry/index.js';
15
- import { prependEntriesDir } from '../../shared/prependEntriesDir.js';
16
- import { getFilePathResolved } from '../shared/getFilePath.js';
17
- import { getConfigValueBuildTime } from '../../../shared/page-configs/getConfigValueBuildTime.js';
18
- import { getOutDirs, resolveOutDir } from '../shared/getOutDirs.js';
19
- import { viteIsSSR } from '../shared/viteIsSSR.js';
20
- // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
11
+ import { prependEntriesDir } from '../../../shared/prependEntriesDir.js';
12
+ import { getFilePathResolved } from '../../shared/getFilePath.js';
13
+ import { getConfigValueBuildTime } from '../../../../shared/page-configs/getConfigValueBuildTime.js';
14
+ import { isViteServerBuild } from '../../shared/isViteServerBuild.js';
15
+ import { resolveOutDir } from '../../shared/getOutDirs.js';
16
+ import { handleAssetsManifest_assertUsageCssCodeSplit, handleAssetsManifest_getBuildConfig } from './handleAssetsManifest.js';
17
+ // @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
21
18
  const importMetaUrl = import.meta.url;
22
19
  const require_ = createRequire(importMetaUrl);
23
20
  const manifestTempFile = '_temp_manifest.json';
24
- function buildConfig() {
25
- let isServerAssetsFixEnabled;
26
- let outDirs;
21
+ function pluginBuildConfig() {
27
22
  let config;
28
23
  return [
29
24
  {
30
- name: 'vike:buildConfig:post',
25
+ name: 'vike:build:pluginBuildConfig',
31
26
  apply: 'build',
32
27
  enforce: 'post',
33
28
  configResolved: {
34
29
  order: 'post',
35
30
  async handler(config_) {
36
- config = config_;
37
31
  onSetupBuild();
32
+ config = config_;
38
33
  assertRollupInput(config);
39
34
  const entries = await getEntries(config);
40
35
  assert(Object.keys(entries).length > 0);
41
36
  config.build.rollupOptions.input = injectRollupInputs(entries, config);
42
37
  addLogHook();
43
- outDirs = getOutDirs(config);
44
- {
45
- isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (await isV1Design(config));
46
- if (isServerAssetsFixEnabled) {
47
- // https://github.com/vikejs/vike/issues/1339
48
- config.build.ssrEmitAssets = true;
49
- // Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
50
- config.build.cssMinify = 'esbuild';
51
- fixServerAssets_assertCssCodeSplit(config);
52
- }
53
- }
38
+ handleAssetsManifest_assertUsageCssCodeSplit(config);
54
39
  }
55
40
  },
56
41
  config: {
@@ -60,56 +45,13 @@ function buildConfig() {
60
45
  return {
61
46
  build: {
62
47
  outDir: resolveOutDir(config),
63
- manifest: manifestTempFile,
64
- copyPublicDir: config.vike.config.viteEnvironmentAPI
65
- ? // Already set by buildApp() plugin
66
- undefined
67
- : !viteIsSSR(config)
48
+ ...handleAssetsManifest_getBuildConfig(config)
68
49
  }
69
50
  };
70
51
  }
71
52
  },
72
53
  buildStart() {
73
54
  onSetupBuild();
74
- },
75
- async closeBundle() {
76
- onSetupBuild();
77
- await fixServerAssets_assertCssTarget(config);
78
- }
79
- },
80
- {
81
- name: 'vike:buildConfig:pre',
82
- apply: 'build',
83
- applyToEnvironment(env) {
84
- return env.name === 'ssr';
85
- },
86
- // Make sure other writeBundle() hooks are called after this writeBundle() hook.
87
- // - set_ASSETS_MANIFEST() needs to be called before dist/server/ code is executed.
88
- // - For example, the writeBundle() hook of vite-plugin-vercel needs to be called after this writeBundle() hook, otherwise: https://github.com/vikejs/vike/issues/1527
89
- enforce: 'pre',
90
- writeBundle: {
91
- order: 'pre',
92
- sequential: true,
93
- async handler(options, bundle) {
94
- if (viteIsSSR(config)) {
95
- // Ideally we'd move dist/_temp_manifest.json to dist/server/client-assets.json instead of dist/assets.json
96
- // - But we can't because there is no guarentee whether dist/server/ is generated before or after dist/client/ (generating dist/server/ after dist/client/ erases dist/server/client-assets.json)
97
- // - We'll able to do so once we replace `$ vite build` with `$ vike build`
98
- const assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
99
- const clientManifestFilePath = path.posix.join(outDirs.outDirClient, manifestTempFile);
100
- const serverManifestFilePath = path.posix.join(outDirs.outDirServer, manifestTempFile);
101
- if (!isServerAssetsFixEnabled) {
102
- await fs.copyFile(clientManifestFilePath, assetsJsonFilePath);
103
- }
104
- else {
105
- const { clientManifestMod } = await fixServerAssets(config);
106
- await fs.writeFile(assetsJsonFilePath, JSON.stringify(clientManifestMod, null, 2), 'utf-8');
107
- }
108
- await fs.rm(clientManifestFilePath);
109
- await fs.rm(serverManifestFilePath);
110
- await set_ASSETS_MANIFEST(options, bundle);
111
- }
112
- }
113
55
  }
114
56
  }
115
57
  ];
@@ -122,10 +64,9 @@ async function getEntries(config) {
122
64
  // TODO/now: add meta.default
123
65
  vikeConfig.global.config.includeAssetsImportedByServer ?? true);
124
66
  assertUsage(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
125
- if (viteIsSSR(config)) {
67
+ if (isViteServerBuild(config)) {
126
68
  const pageEntries = getPageEntries(pageConfigs);
127
69
  const entries = {
128
- // buildEntry: resolve('dist/esm/node/buildEntry.js'), // TODO/next-major-release: remove
129
70
  ...pageFileEntries,
130
71
  // Ensure Rollup generates a bundle per page: https://github.com/vikejs/vike/issues/349#issuecomment-1166247275
131
72
  ...pageEntries
@@ -196,7 +137,7 @@ function analyzeClientEntries(pageConfigs, config) {
196
137
  // Ensure Rollup creates entries for each page file, see https://github.com/vikejs/vike/issues/350
197
138
  // (Otherwise the page files may be missing in the client manifest.json)
198
139
  async function getPageFileEntries(config, includeAssetsImportedByServer) {
199
- const isForClientSide = !viteIsSSR(config);
140
+ const isForClientSide = !isViteServerBuild(config);
200
141
  const fileTypes = isForClientSide ? ['.page', '.page.client'] : ['.page', '.page.server'];
201
142
  if (isForClientSide && includeAssetsImportedByServer) {
202
143
  fileTypes.push('.page.server');
@@ -255,8 +196,8 @@ function getEntryFromPageConfig(pageConfig, isForClientSide) {
255
196
  }
256
197
  function resolve(filePath) {
257
198
  assert(filePath.startsWith('dist/'));
258
- // [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/
259
- return require_.resolve(`../../../../../${filePath}`);
199
+ // [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/build/
200
+ return require_.resolve(`../../../../../../${filePath}`);
260
201
  }
261
202
  function addLogHook() {
262
203
  const tty = process.stdout.isTTY && !process.env.CI; // Equals https://github.com/vitejs/vite/blob/193d55c7b9cbfec5b79ebfca276d4a721e7de14d/packages/vite/src/node/plugins/reporter.ts#L27
@@ -0,0 +1,7 @@
1
+ export { pluginBuildEntry };
2
+ export { set_macro_ASSETS_MANIFEST };
3
+ import type { Plugin, Rollup } from 'vite';
4
+ type Bundle = Rollup.OutputBundle;
5
+ type Options = Rollup.NormalizedOutputOptions;
6
+ declare function pluginBuildEntry(): Plugin[];
7
+ declare function set_macro_ASSETS_MANIFEST(options: Options, bundle: Bundle, assetsJsonFilePath: string): Promise<void>;
@@ -1,23 +1,24 @@
1
- export { buildEntry };
2
- export { set_ASSETS_MANIFEST };
1
+ export { pluginBuildEntry };
2
+ export { set_macro_ASSETS_MANIFEST };
3
3
  import { serverProductionEntryPlugin } from '@brillout/vite-plugin-server-entry/plugin';
4
4
  import { virtualFileIdImportUserCodeServer } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
5
5
  import { assert, projectInfo, toPosixPath } from '../../utils.js';
6
6
  import fs from 'fs/promises';
7
7
  import path from 'path';
8
8
  import { createRequire } from 'module';
9
- // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
9
+ // @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
10
10
  const importMetaUrl = import.meta.url;
11
11
  const require_ = createRequire(importMetaUrl);
12
12
  import { isUsingClientRouter } from '../extractExportNamesPlugin.js';
13
13
  import { assertBuildInfo, getViteConfigRuntime } from '../../../runtime/globalContext.js';
14
14
  import { getOutDirs } from '../../shared/getOutDirs.js';
15
15
  const ASSETS_MANIFEST = '__VITE_ASSETS_MANIFEST__';
16
- function buildEntry() {
16
+ function pluginBuildEntry() {
17
17
  let config;
18
18
  return [
19
19
  {
20
- name: 'vike:buildEntry',
20
+ name: 'vike:build:pluginBuildEntry',
21
+ apply: 'build',
21
22
  enforce: 'post',
22
23
  async configResolved(config_) {
23
24
  config = config_;
@@ -58,13 +59,12 @@ function getServerProductionEntryCode(config) {
58
59
  ].join('\n');
59
60
  return importerCode;
60
61
  }
61
- /** Set the value of the ASSETS_MANIFEST constant inside dist/server/entry.js (or dist/server/index.js) */
62
- async function set_ASSETS_MANIFEST(options, bundle) {
62
+ // Set the value of the ASSETS_MANIFEST constant inside dist/server/entry.js (or dist/server/index.js)
63
+ async function set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath) {
63
64
  const { dir } = options;
64
65
  assert(dir);
65
66
  const chunkPath = find_ASSETS_MANIFEST(bundle);
66
67
  const chunkFilePath = path.join(dir, chunkPath);
67
- const assetsJsonFilePath = path.join(dir, '..', 'assets.json');
68
68
  const [assetsJsonString, chunkFileContent] = await Promise.all([
69
69
  await fs.readFile(assetsJsonFilePath, 'utf8'),
70
70
  await fs.readFile(chunkFilePath, 'utf8')
@@ -88,7 +88,7 @@ function find_ASSETS_MANIFEST(bundle) {
88
88
  function getImportPath(config) {
89
89
  // We resolve filePathAbsolute even if we don't use it: we use require.resolve() as an assertion that the relative path is correct
90
90
  const filePathAbsolute = toPosixPath(
91
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/buildEntry/index.js
91
+ // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/pluginBuildEntry/index.js
92
92
  require_.resolve(`../../../../../../dist/esm/__internal/index.js`));
93
93
  if (
94
94
  // Let's implement a new config if a user needs the import to be a relative path instead of 'vike/__internal' (AFAIK a relative path is needed only if a framework has npm package 'vike' as direct dependency instead of a peer dependency and if the user of that framework uses pnpm)
@@ -0,0 +1,3 @@
1
+ export { pluginDistFileNames };
2
+ import type { Plugin } from 'vite';
3
+ declare function pluginDistFileNames(): Plugin;
@@ -1,15 +1,15 @@
1
- export { distFileNames };
1
+ export { pluginDistFileNames };
2
2
  // Attempt to preserve file structure of `.page.js` files:
3
3
  // - https://github.com/vikejs/vike/commit/11a4c49e5403aa7c37c8020c462b499425b41854
4
4
  // - Blocker: https://github.com/rollup/rollup/issues/4724
5
- import { assertPosixPath, assert, assertUsage, isArray, isCallable } from '../utils.js';
5
+ import { assertPosixPath, assert, assertUsage, isArray, isCallable } from '../../utils.js';
6
6
  import path from 'path';
7
7
  import crypto from 'crypto';
8
- import { getAssetsDir } from '../shared/getAssetsDir.js';
9
- import { assertModuleId, getModuleFilePathAbsolute } from '../shared/getFilePath.js';
10
- function distFileNames() {
8
+ import { getAssetsDir } from '../../shared/getAssetsDir.js';
9
+ import { assertModuleId, getModuleFilePathAbsolute } from '../../shared/getFilePath.js';
10
+ function pluginDistFileNames() {
11
11
  return {
12
- name: 'vike:distFileNames',
12
+ name: 'vike:build:pluginDistFileNames',
13
13
  apply: 'build',
14
14
  enforce: 'post',
15
15
  configResolved(config) {
@@ -28,7 +28,7 @@ function distFileNames() {
28
28
  else {
29
29
  // If a user needs this:
30
30
  // - assertUsage() that the naming provided by the user ends with `.[hash][extname]`
31
- // - It's needed for getHash() of fixServerAssets()
31
+ // - It's needed for getHash() of handleAssetsManifest()
32
32
  // - Asset URLs should always contain a hash: it's paramount for caching assets.
33
33
  // - If rollupOutput.assetFileNames is a function then use a wrapper function to apply the assertUsage()
34
34
  assertUsage(false, "Setting Vite's configuration build.rollupOptions.output.assetFileNames is currently forbidden. Reach out if you need to use.");
@@ -0,0 +1,3 @@
1
+ export { pluginDistPackageJsonFile };
2
+ import type { Plugin } from 'vite';
3
+ declare function pluginDistPackageJsonFile(): Plugin;
@@ -6,19 +6,20 @@
6
6
  * require() of dist/server/pageFiles.js from node_modules/vike/dist/esm/node/runtime/page-files/setup.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
7
7
  * Reproduction: https://github.com/brillout/vite-plugin-ssr-server-import-syntax
8
8
  */
9
- export { packageJsonFile };
10
- import { rollupIsEsm } from '../shared/rollupIsEsm.js';
11
- import { viteIsSSR } from '../shared/viteIsSSR.js';
12
- function packageJsonFile() {
9
+ // TODO/refactor: prefix all other plugins with `plugin` as well?
10
+ export { pluginDistPackageJsonFile };
11
+ import { rollupIsEsm } from '../../shared/rollupIsEsm.js';
12
+ import { isViteServerBuild } from '../../shared/isViteServerBuild.js';
13
+ function pluginDistPackageJsonFile() {
13
14
  let config;
14
15
  return {
15
- name: 'vike:packageJsonFile',
16
+ name: 'vike:build:pluginDistPackageJsonFile',
16
17
  apply: 'build',
17
18
  configResolved(config_) {
18
19
  config = config_;
19
20
  },
20
21
  generateBundle(options, bundle) {
21
- if (!viteIsSSR(config))
22
+ if (!isViteServerBuild(config))
22
23
  return;
23
24
  const isEsm = rollupIsEsm(options);
24
25
  const fileName = 'package.json';
@@ -0,0 +1,3 @@
1
+ export { pluginSuppressRollupWarning };
2
+ import type { Plugin } from 'vite';
3
+ declare function pluginSuppressRollupWarning(): Plugin;
@@ -1,8 +1,8 @@
1
1
  // Suppress Rollup warnings `Generated an empty chunk: "index.page.server"`
2
- export { suppressRollupWarning };
3
- function suppressRollupWarning() {
2
+ export { pluginSuppressRollupWarning };
3
+ function pluginSuppressRollupWarning() {
4
4
  return {
5
- name: 'vike:suppressRollupWarning',
5
+ name: 'vike:build:pluginSuppressRollupWarning',
6
6
  apply: 'build',
7
7
  enforce: 'post',
8
8
  async configResolved(config) {
@@ -0,0 +1,3 @@
1
+ export { build };
2
+ import type { Plugin } from 'vite';
3
+ declare function build(): Plugin[];
@@ -0,0 +1,19 @@
1
+ export { build };
2
+ import { pluginBuildApp } from './build/pluginBuildApp.js';
3
+ import { pluginDistPackageJsonFile } from './build/pluginDistPackageJsonFile.js';
4
+ import { pluginSuppressRollupWarning } from './build/pluginSuppressRollupWarning.js';
5
+ import { pluginDistFileNames } from './build/pluginDistFileNames.js';
6
+ import { pluginAutoFullBuild } from './build/pluginAutoFullBuild.js';
7
+ import { pluginBuildEntry } from './build/pluginBuildEntry.js';
8
+ import { pluginBuildConfig } from './build/pluginBuildConfig.js';
9
+ function build() {
10
+ return [
11
+ ...pluginBuildConfig(),
12
+ ...pluginBuildApp(),
13
+ ...pluginAutoFullBuild(),
14
+ ...pluginBuildEntry(),
15
+ pluginDistPackageJsonFile(),
16
+ pluginSuppressRollupWarning(),
17
+ pluginDistFileNames()
18
+ ];
19
+ }
@@ -1,5 +1,6 @@
1
1
  export { commonConfig };
2
- import { type InlineConfig, type Plugin } from 'vite';
2
+ export { getVikeConfigPublic };
3
+ import { type InlineConfig, type Plugin, type ResolvedConfig, type UserConfig } from 'vite';
3
4
  import { type VikeConfigObject } from './importUserCode/v1-design/getVikeConfig.js';
4
5
  import type { PrerenderContextPublic } from '../../prerender/runPrerender.js';
5
6
  declare module 'vite' {
@@ -9,11 +10,19 @@ declare module 'vite' {
9
10
  _root?: string;
10
11
  _baseViteOriginal?: string;
11
12
  _viteConfigEnhanced?: InlineConfig;
12
- vike?: {
13
- config: VikeConfigObject['global']['config'];
14
- pages: VikeConfigObject['pages'];
15
- prerenderContext?: PrerenderContextPublic;
16
- };
13
+ _vike?: VikeConfigPublic;
14
+ _vikeConfigObject?: VikeConfigObject;
17
15
  }
18
16
  }
17
+ type VikeConfigPublic = {
18
+ config: VikeConfigObject['global']['config'];
19
+ pages: VikeConfigObject['pages'];
20
+ prerenderContext?: PrerenderContextPublic;
21
+ };
19
22
  declare function commonConfig(vikeVitePluginOptions: unknown): Plugin[];
23
+ /**
24
+ * Get all the information Vike knows about the app in your Vite plugin.
25
+ *
26
+ * https://vike.dev/getVikeConfig
27
+ */
28
+ declare function getVikeConfigPublic(config: ResolvedConfig | UserConfig): VikeConfigPublic;
@@ -1,7 +1,8 @@
1
1
  export { commonConfig };
2
+ export { getVikeConfigPublic };
2
3
  import { mergeConfig } from 'vite';
3
4
  import { assert, assertUsage, assertWarning, findPackageJson, hasProp, isDevCheck, isDocker, isObject } from '../utils.js';
4
- import { assertRollupInput } from './buildConfig.js';
5
+ import { assertRollupInput } from './build/pluginBuildConfig.js';
5
6
  import { installRequireShim_setUserRootDir } from '@brillout/require-shim';
6
7
  import pc from '@brillout/picocolors';
7
8
  import path from 'path';
@@ -11,7 +12,8 @@ import { isViteCliCall } from '../shared/isViteCliCall.js';
11
12
  import { isVikeCliOrApi } from '../../api/context.js';
12
13
  import { getVikeConfig2 } from './importUserCode/v1-design/getVikeConfig.js';
13
14
  import { assertViteRoot, getViteRoot, normalizeViteRoot } from '../../api/prepareViteApiCall.js';
14
- import { isPrerenderEnabled, temp_disablePrerenderAutoRun } from '../../prerender/context.js';
15
+ import { temp_disablePrerenderAutoRun } from '../../prerender/context.js';
16
+ import { resolvePrerenderConfigGlobal } from '../../prerender/resolvePrerenderConfig.js';
15
17
  const pluginName = 'vike:commonConfig';
16
18
  function commonConfig(vikeVitePluginOptions) {
17
19
  return [
@@ -30,13 +32,14 @@ function commonConfig(vikeVitePluginOptions) {
30
32
  _isDev: isDev,
31
33
  _root: root,
32
34
  _vikeVitePluginOptions: vikeVitePluginOptions,
33
- vike: {
35
+ _vikeConfigObject: vikeConfig,
36
+ _vike: {
34
37
  pages: vikeConfig.pages,
35
38
  config: vikeConfig.global.config
36
39
  },
37
40
  // TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
38
41
  configVikePromise: Promise.resolve({
39
- prerender: isPrerenderEnabled(vikeConfig)
42
+ prerender: resolvePrerenderConfigGlobal(vikeConfig).isEnabled
40
43
  })
41
44
  };
42
45
  }
@@ -168,3 +171,18 @@ function temp_supportOldInterface(config) {
168
171
  }
169
172
  assert(false);
170
173
  }
174
+ // TODO/soon rename:
175
+ // - `getVikeConfig()` => `resolveVikeConfig()` ?
176
+ // - `getVikeConfigPublic()` => `getVikeConfig()`
177
+ // - `VikeConfigPublic` => `VikeConfig` ?
178
+ // - `VikeConfigObject` => `VikeConfigInternal` ?
179
+ /**
180
+ * Get all the information Vike knows about the app in your Vite plugin.
181
+ *
182
+ * https://vike.dev/getVikeConfig
183
+ */
184
+ function getVikeConfigPublic(config) {
185
+ const vikeConfig = config._vike;
186
+ assert(vikeConfig);
187
+ return vikeConfig;
188
+ }