vike 0.4.236-commit-08fbc10 → 0.4.236-commit-79f1ef0
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.
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +20 -10
- package/dist/cjs/client/shared/utils.js +1 -0
- package/dist/cjs/node/runtime/globalContext.js +104 -20
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +3 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +3 -1
- package/dist/cjs/node/runtime/utils.js +3 -0
- package/dist/cjs/node/vite/index.js +2 -0
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +19 -11
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -3
- package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +10 -8
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +51 -0
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.js +4 -0
- package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
- package/dist/cjs/node/vite/shared/getMagicString.js +18 -0
- package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +10 -0
- package/dist/cjs/shared/createGlobalContextShared.js +5 -1
- package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +2 -0
- package/dist/cjs/utils/debug.js +1 -0
- package/dist/cjs/utils/getViteRPC.js +79 -0
- package/dist/cjs/utils/isRunnableDevEnvironment.js +9 -0
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +1 -1
- package/dist/esm/client/shared/createGetGlobalContextClient.js +20 -10
- package/dist/esm/client/shared/utils.d.ts +1 -0
- package/dist/esm/client/shared/utils.js +1 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +40 -132
- package/dist/esm/node/runtime/globalContext.d.ts +32 -52
- package/dist/esm/node/runtime/globalContext.js +105 -21
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +4 -2
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +10 -33
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +20 -66
- package/dist/esm/node/runtime/renderPage.d.ts +10 -33
- package/dist/esm/node/runtime/utils.d.ts +3 -0
- package/dist/esm/node/runtime/utils.js +3 -0
- package/dist/esm/node/vite/index.js +2 -0
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +19 -11
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +2 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +0 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -2
- package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +10 -8
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +26 -0
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +49 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.js +4 -0
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
- package/dist/esm/node/vite/shared/getMagicString.d.ts +9 -0
- package/dist/esm/node/vite/shared/getMagicString.js +13 -0
- package/dist/esm/node/vite/shared/getManifestFilePathRelative.d.ts +2 -0
- package/dist/esm/node/vite/shared/getManifestFilePathRelative.js +8 -0
- package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
- package/dist/esm/shared/createGlobalContextShared.js +5 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assertSetup.js +2 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +1 -0
- package/dist/esm/utils/getViteRPC.d.ts +6 -0
- package/dist/esm/utils/getViteRPC.js +77 -0
- package/dist/esm/utils/isRunnableDevEnvironment.d.ts +3 -0
- package/dist/esm/utils/isRunnableDevEnvironment.js +7 -0
- package/package.json +11 -2
|
@@ -51,8 +51,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
51
51
|
_isProduction: false;
|
|
52
52
|
_isPrerendering: false;
|
|
53
53
|
assetsManifest: null;
|
|
54
|
-
_viteDevServer: ViteDevServer;
|
|
55
|
-
viteConfig: ResolvedConfig;
|
|
54
|
+
_viteDevServer: ViteDevServer | undefined;
|
|
55
|
+
viteConfig: ResolvedConfig | undefined;
|
|
56
|
+
isClientSide: false;
|
|
57
|
+
_pageRoutes: PageRoutes;
|
|
58
|
+
_onBeforeRouteHook: Hook | null;
|
|
59
|
+
} & {
|
|
60
|
+
baseServer: string;
|
|
61
|
+
baseAssets: string;
|
|
56
62
|
viteConfigRuntime: {
|
|
57
63
|
root: string;
|
|
58
64
|
build: {
|
|
@@ -63,11 +69,6 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
63
69
|
inject: boolean | undefined;
|
|
64
70
|
};
|
|
65
71
|
};
|
|
66
|
-
baseServer: string;
|
|
67
|
-
baseAssets: string;
|
|
68
|
-
isClientSide: false;
|
|
69
|
-
_pageRoutes: PageRoutes;
|
|
70
|
-
_onBeforeRouteHook: Hook | null;
|
|
71
72
|
}) | (Record<string, unknown> & {
|
|
72
73
|
isGlobalContext: true;
|
|
73
74
|
_isOriginalObject: true;
|
|
@@ -92,6 +93,13 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
92
93
|
_isProduction: true;
|
|
93
94
|
assetsManifest: ViteManifest;
|
|
94
95
|
_viteDevServer: null;
|
|
96
|
+
_usesClientRouter: boolean;
|
|
97
|
+
isClientSide: false;
|
|
98
|
+
_pageRoutes: PageRoutes;
|
|
99
|
+
_onBeforeRouteHook: Hook | null;
|
|
100
|
+
} & {
|
|
101
|
+
baseServer: string;
|
|
102
|
+
baseAssets: string;
|
|
95
103
|
viteConfigRuntime: {
|
|
96
104
|
root: string;
|
|
97
105
|
build: {
|
|
@@ -102,12 +110,6 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
102
110
|
inject: boolean | undefined;
|
|
103
111
|
};
|
|
104
112
|
};
|
|
105
|
-
_usesClientRouter: boolean;
|
|
106
|
-
baseServer: string;
|
|
107
|
-
baseAssets: string;
|
|
108
|
-
isClientSide: false;
|
|
109
|
-
_pageRoutes: PageRoutes;
|
|
110
|
-
_onBeforeRouteHook: Hook | null;
|
|
111
113
|
}) | (Record<string, unknown> & {
|
|
112
114
|
isGlobalContext: true;
|
|
113
115
|
_isOriginalObject: true;
|
|
@@ -132,6 +134,13 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
132
134
|
_isProduction: true;
|
|
133
135
|
assetsManifest: ViteManifest;
|
|
134
136
|
_viteDevServer: null;
|
|
137
|
+
_usesClientRouter: boolean;
|
|
138
|
+
isClientSide: false;
|
|
139
|
+
_pageRoutes: PageRoutes;
|
|
140
|
+
_onBeforeRouteHook: Hook | null;
|
|
141
|
+
} & {
|
|
142
|
+
baseServer: string;
|
|
143
|
+
baseAssets: string;
|
|
135
144
|
viteConfigRuntime: {
|
|
136
145
|
root: string;
|
|
137
146
|
build: {
|
|
@@ -142,12 +151,6 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
142
151
|
inject: boolean | undefined;
|
|
143
152
|
};
|
|
144
153
|
};
|
|
145
|
-
_usesClientRouter: boolean;
|
|
146
|
-
baseServer: string;
|
|
147
|
-
baseAssets: string;
|
|
148
|
-
isClientSide: false;
|
|
149
|
-
_pageRoutes: PageRoutes;
|
|
150
|
-
_onBeforeRouteHook: Hook | null;
|
|
151
154
|
});
|
|
152
155
|
}>;
|
|
153
156
|
/**
|
|
@@ -205,24 +208,12 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
|
|
|
205
208
|
pages: {
|
|
206
209
|
[k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
|
|
207
210
|
};
|
|
208
|
-
} & ({
|
|
211
|
+
} & (({
|
|
209
212
|
_isProduction: false;
|
|
210
213
|
_isPrerendering: false;
|
|
211
214
|
assetsManifest: null;
|
|
212
|
-
_viteDevServer: ViteDevServer;
|
|
213
|
-
viteConfig: ResolvedConfig;
|
|
214
|
-
viteConfigRuntime: {
|
|
215
|
-
root: string;
|
|
216
|
-
build: {
|
|
217
|
-
outDir: string;
|
|
218
|
-
};
|
|
219
|
-
_baseViteOriginal: string;
|
|
220
|
-
vitePluginServerEntry: {
|
|
221
|
-
inject: boolean | undefined;
|
|
222
|
-
};
|
|
223
|
-
};
|
|
224
|
-
baseServer: string;
|
|
225
|
-
baseAssets: string;
|
|
215
|
+
_viteDevServer: ViteDevServer | undefined;
|
|
216
|
+
viteConfig: ResolvedConfig | undefined;
|
|
226
217
|
isClientSide: false;
|
|
227
218
|
_pageRoutes: PageRoutes;
|
|
228
219
|
_onBeforeRouteHook: Hook | null;
|
|
@@ -232,19 +223,7 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
|
|
|
232
223
|
_isProduction: true;
|
|
233
224
|
assetsManifest: ViteManifest;
|
|
234
225
|
_viteDevServer: null;
|
|
235
|
-
viteConfigRuntime: {
|
|
236
|
-
root: string;
|
|
237
|
-
build: {
|
|
238
|
-
outDir: string;
|
|
239
|
-
};
|
|
240
|
-
_baseViteOriginal: string;
|
|
241
|
-
vitePluginServerEntry: {
|
|
242
|
-
inject: boolean | undefined;
|
|
243
|
-
};
|
|
244
|
-
};
|
|
245
226
|
_usesClientRouter: boolean;
|
|
246
|
-
baseServer: string;
|
|
247
|
-
baseAssets: string;
|
|
248
227
|
isClientSide: false;
|
|
249
228
|
_pageRoutes: PageRoutes;
|
|
250
229
|
_onBeforeRouteHook: Hook | null;
|
|
@@ -254,6 +233,13 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
|
|
|
254
233
|
_isProduction: true;
|
|
255
234
|
assetsManifest: ViteManifest;
|
|
256
235
|
_viteDevServer: null;
|
|
236
|
+
_usesClientRouter: boolean;
|
|
237
|
+
isClientSide: false;
|
|
238
|
+
_pageRoutes: PageRoutes;
|
|
239
|
+
_onBeforeRouteHook: Hook | null;
|
|
240
|
+
}) & {
|
|
241
|
+
baseServer: string;
|
|
242
|
+
baseAssets: string;
|
|
257
243
|
viteConfigRuntime: {
|
|
258
244
|
root: string;
|
|
259
245
|
build: {
|
|
@@ -264,11 +250,5 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
|
|
|
264
250
|
inject: boolean | undefined;
|
|
265
251
|
};
|
|
266
252
|
};
|
|
267
|
-
_usesClientRouter: boolean;
|
|
268
|
-
baseServer: string;
|
|
269
|
-
baseAssets: string;
|
|
270
|
-
isClientSide: false;
|
|
271
|
-
_pageRoutes: PageRoutes;
|
|
272
|
-
_onBeforeRouteHook: Hook | null;
|
|
273
253
|
})>;
|
|
274
254
|
declare function clearGlobalContext(): void;
|
|
@@ -18,6 +18,12 @@ export { clearGlobalContext };
|
|
|
18
18
|
export { assertBuildInfo };
|
|
19
19
|
export { updateUserFiles };
|
|
20
20
|
export { vikeConfigErrorRecoverMsg };
|
|
21
|
+
// TODO/now: use isProductionEnvironment() instead of globalObject.isProduction
|
|
22
|
+
// TODO/now: rename:
|
|
23
|
+
// - isProduction => isProductionEnvironment
|
|
24
|
+
// - setIsProduction => setIsProductionEnvironment
|
|
25
|
+
// - setGlobalContext_isProduction => setGlobalContext_isProductionEnvironment
|
|
26
|
+
// - sProductionEnvironment => sDevEnv
|
|
21
27
|
// The core logic revolves around:
|
|
22
28
|
// - virtualFileExports is the main requirement
|
|
23
29
|
// - In production: globalObject.buildEntry which is the production entry set by @brillout/vite-plugin-server-entry
|
|
@@ -26,7 +32,7 @@ export { vikeConfigErrorRecoverMsg };
|
|
|
26
32
|
// - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
|
|
27
33
|
// - In development: globalObject.viteDevServer which is Vite's development server
|
|
28
34
|
// - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExports
|
|
29
|
-
import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, } from './utils.js';
|
|
35
|
+
import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, getViteRPC, isRunnableDevEnvironment, assertIsNotBrowser, } from './utils.js';
|
|
30
36
|
import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
|
|
31
37
|
import { virtualFileIdEntryServer } from '../shared/virtualFiles/virtualFileEntry.js';
|
|
32
38
|
import pc from '@brillout/picocolors';
|
|
@@ -44,6 +50,7 @@ const globalObject = getGlobalObject('runtime/globalContext.ts', getInitialGloba
|
|
|
44
50
|
// https://chat.deepseek.com/a/chat/s/d7e9f90a-c7f3-4108-9cd5-4ad6caed3539
|
|
45
51
|
const globalObjectTyped = globalObject;
|
|
46
52
|
const vikeConfigErrorRecoverMsg = pc.bold(pc.green('Vike config loaded'));
|
|
53
|
+
assertIsNotBrowser();
|
|
47
54
|
async function getGlobalContextServerInternal() {
|
|
48
55
|
// getGlobalContextServerInternal() should always be called after initGlobalContext()
|
|
49
56
|
assert(globalObject.isInitialized);
|
|
@@ -130,10 +137,12 @@ async function setGlobalContext_viteDevServer(viteDevServer) {
|
|
|
130
137
|
assert(globalObject.viteConfig);
|
|
131
138
|
globalObject.viteDevServer = viteDevServer;
|
|
132
139
|
globalObject.viteDevServerPromiseResolve(viteDevServer);
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
140
|
+
if (isRunnable(viteDevServer)) {
|
|
141
|
+
const { success } = await updateUserFiles();
|
|
142
|
+
if (!success)
|
|
143
|
+
return;
|
|
144
|
+
assertGlobalContextIsDefined();
|
|
145
|
+
}
|
|
137
146
|
}
|
|
138
147
|
function setGlobalContext_viteConfig(viteConfig, viteConfigRuntime) {
|
|
139
148
|
if (globalObject.viteConfig)
|
|
@@ -150,6 +159,7 @@ function setGlobalContext_isPrerendering() {
|
|
|
150
159
|
globalObject.isPrerendering = true;
|
|
151
160
|
setIsProduction(true);
|
|
152
161
|
}
|
|
162
|
+
// TODO/now: `rename tolerateContraditction tolerateContradiction`
|
|
153
163
|
function setGlobalContext_isProduction(isProduction, tolerateContraditction = false) {
|
|
154
164
|
if (debug.isActivated)
|
|
155
165
|
debug('setGlobalContext_isProduction()', { isProduction, tolerateContraditction });
|
|
@@ -201,7 +211,13 @@ async function initGlobalContext() {
|
|
|
201
211
|
const { isProduction } = globalObject;
|
|
202
212
|
assert(typeof isProduction === 'boolean');
|
|
203
213
|
if (!isProduction) {
|
|
204
|
-
|
|
214
|
+
if (isProcessSharedWithVite()) {
|
|
215
|
+
await globalObject.viteDevServerPromise;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
assert(isNonRunnableDev());
|
|
219
|
+
await updateUserFiles();
|
|
220
|
+
}
|
|
205
221
|
assert(globalObject.waitForUserFilesUpdate);
|
|
206
222
|
await globalObject.waitForUserFilesUpdate;
|
|
207
223
|
}
|
|
@@ -335,16 +351,46 @@ async function updateUserFiles() {
|
|
|
335
351
|
// Avoid race condition: abort if there is a new globalObject.viteDevServer (happens when vite.config.js is modified => Vite's dev server is fully reloaded).
|
|
336
352
|
viteDevServer !== globalObject.viteDevServer;
|
|
337
353
|
const { viteDevServer } = globalObject;
|
|
338
|
-
assert(viteDevServer);
|
|
339
354
|
let hasError = false;
|
|
340
355
|
let virtualFileExports;
|
|
341
356
|
let err;
|
|
342
|
-
|
|
343
|
-
|
|
357
|
+
if (viteDevServer) {
|
|
358
|
+
assert(isRunnable(viteDevServer));
|
|
359
|
+
/* We don't use runner.import() yet, because as of vite@7.0.6 (July 2025) runner.import() unexpectedly invalidates the module graph, which is a unexpected behavior that doesn't happen with ssrLoadModule()
|
|
360
|
+
// Vite 6
|
|
361
|
+
try {
|
|
362
|
+
virtualFileExports = await (viteDevServer.environments.ssr as RunnableDevEnvironment).runner.import(
|
|
363
|
+
'virtual:vike:entry:server',
|
|
364
|
+
)
|
|
365
|
+
} catch (err_) {
|
|
366
|
+
hasError = true
|
|
367
|
+
err = err_
|
|
368
|
+
}
|
|
369
|
+
*/
|
|
370
|
+
// Vite 5
|
|
371
|
+
try {
|
|
372
|
+
virtualFileExports = await viteDevServer.ssrLoadModule(virtualFileIdEntryServer);
|
|
373
|
+
}
|
|
374
|
+
catch (err_) {
|
|
375
|
+
hasError = true;
|
|
376
|
+
err = err_;
|
|
377
|
+
}
|
|
344
378
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
379
|
+
else {
|
|
380
|
+
try {
|
|
381
|
+
/* We use __VIKE__DYNAMIC_IMPORT instead of directly using import() to workaround what seems to be a Vite HMR bug:
|
|
382
|
+
```js
|
|
383
|
+
assert(false)
|
|
384
|
+
// This line breaks the HMR of regular (runnable) apps, even though (as per the assert() above) it's never run. It seems to be a Vite bug: handleHotUpdate() receives an empty `modules` list.
|
|
385
|
+
import('virtual:vike:entry:server')
|
|
386
|
+
```
|
|
387
|
+
*/
|
|
388
|
+
virtualFileExports = await __VIKE__DYNAMIC_IMPORT('virtual:vike:entry:server');
|
|
389
|
+
}
|
|
390
|
+
catch (err_) {
|
|
391
|
+
hasError = true;
|
|
392
|
+
err = err_;
|
|
393
|
+
}
|
|
348
394
|
}
|
|
349
395
|
if (isOutdated())
|
|
350
396
|
return { success: false };
|
|
@@ -370,7 +416,7 @@ async function updateUserFiles() {
|
|
|
370
416
|
async function setGlobalContext(virtualFileExports) {
|
|
371
417
|
debug('setGlobalContext()');
|
|
372
418
|
assert(!getVikeConfigErrorBuild());
|
|
373
|
-
const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext, addGlobalContextTmp);
|
|
419
|
+
const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext, addGlobalContextTmp, addGlobalContextAsync);
|
|
374
420
|
assertV1Design(
|
|
375
421
|
// pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
|
|
376
422
|
globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
|
|
@@ -396,23 +442,18 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
|
396
442
|
_pageRoutes: pageRoutes,
|
|
397
443
|
_onBeforeRouteHook: onBeforeRouteHook,
|
|
398
444
|
};
|
|
399
|
-
const { viteDevServer, viteConfig,
|
|
445
|
+
const { viteDevServer, viteConfig, isPrerendering, isProduction } = globalObject;
|
|
400
446
|
assert(typeof isProduction === 'boolean');
|
|
401
447
|
if (!isProduction) {
|
|
402
|
-
assert(viteDevServer);
|
|
403
448
|
assert(globalContext); // main common requirement
|
|
404
|
-
assert(viteConfig);
|
|
405
|
-
assert(viteConfigRuntime);
|
|
406
449
|
assert(!isPrerendering);
|
|
407
450
|
return {
|
|
408
451
|
...globalContextBase,
|
|
409
|
-
...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
|
|
410
452
|
_isProduction: false,
|
|
411
453
|
_isPrerendering: false,
|
|
412
454
|
assetsManifest: null,
|
|
413
455
|
_viteDevServer: viteDevServer,
|
|
414
456
|
viteConfig,
|
|
415
|
-
viteConfigRuntime,
|
|
416
457
|
};
|
|
417
458
|
}
|
|
418
459
|
else {
|
|
@@ -423,11 +464,9 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
|
423
464
|
assert(assetsManifest);
|
|
424
465
|
const globalContextBase2 = {
|
|
425
466
|
...globalContextBase,
|
|
426
|
-
...resolveBaseRuntime(buildInfo.viteConfigRuntime, globalContext.config),
|
|
427
467
|
_isProduction: true,
|
|
428
468
|
assetsManifest,
|
|
429
469
|
_viteDevServer: null,
|
|
430
|
-
viteConfigRuntime: buildInfo.viteConfigRuntime,
|
|
431
470
|
_usesClientRouter: buildInfo.usesClientRouter,
|
|
432
471
|
};
|
|
433
472
|
if (isPrerendering) {
|
|
@@ -447,6 +486,27 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
|
447
486
|
}
|
|
448
487
|
}
|
|
449
488
|
}
|
|
489
|
+
async function addGlobalContextAsync(globalContext) {
|
|
490
|
+
debug('addGlobalContextAsync()');
|
|
491
|
+
let { viteConfigRuntime, buildInfo } = globalObject;
|
|
492
|
+
if (!viteConfigRuntime) {
|
|
493
|
+
if (buildInfo) {
|
|
494
|
+
viteConfigRuntime = buildInfo.viteConfigRuntime;
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
assert(!isProcessSharedWithVite()); // process shared with Vite => globalObject.viteConfigRuntime should be set
|
|
498
|
+
assert(!globalObject.isProduction); // production => globalObject.buildInfo.viteConfigRuntime should be set
|
|
499
|
+
assert(isNonRunnableDev());
|
|
500
|
+
const rpc = getViteRPC();
|
|
501
|
+
viteConfigRuntime = await rpc.getViteConfigRuntimeRPC();
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
assert(viteConfigRuntime);
|
|
505
|
+
return {
|
|
506
|
+
viteConfigRuntime,
|
|
507
|
+
...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
|
|
508
|
+
};
|
|
509
|
+
}
|
|
450
510
|
function clearGlobalContext() {
|
|
451
511
|
debug('clearGlobalContext()');
|
|
452
512
|
objectReplace(globalObject, getInitialGlobalObject(), ['buildEntryPrevious']);
|
|
@@ -455,6 +515,7 @@ function getInitialGlobalObject() {
|
|
|
455
515
|
debug('getInitialGlobalObject()');
|
|
456
516
|
const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = genPromise();
|
|
457
517
|
return {
|
|
518
|
+
isProduction: isNonRunnableDev() ? false : undefined,
|
|
458
519
|
viteDevServerPromise,
|
|
459
520
|
viteDevServerPromiseResolve,
|
|
460
521
|
};
|
|
@@ -465,3 +526,26 @@ function resolveBaseRuntime(viteConfigRuntime, config) {
|
|
|
465
526
|
const baseAssetsUnresolved = config.baseAssets ?? null;
|
|
466
527
|
return resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved);
|
|
467
528
|
}
|
|
529
|
+
function isProcessSharedWithVite() {
|
|
530
|
+
const yes = globalThis.__VIKE__IS_PROCESS_SHARED_WITH_VITE ?? false;
|
|
531
|
+
if (yes)
|
|
532
|
+
assert(!isNonRunnableDev());
|
|
533
|
+
return yes;
|
|
534
|
+
}
|
|
535
|
+
function isRunnable(viteDevServer) {
|
|
536
|
+
const yes =
|
|
537
|
+
// Vite 5
|
|
538
|
+
!viteDevServer.environments ||
|
|
539
|
+
// Vite 6 or above
|
|
540
|
+
isRunnableDevEnvironment(viteDevServer.environments.ssr);
|
|
541
|
+
if (yes)
|
|
542
|
+
assert(!isNonRunnableDev());
|
|
543
|
+
return yes;
|
|
544
|
+
}
|
|
545
|
+
function isNonRunnableDev() {
|
|
546
|
+
if (typeof __VIKE__IS_NON_RUNNABLE_DEV === 'undefined')
|
|
547
|
+
return null;
|
|
548
|
+
const yes = __VIKE__IS_NON_RUNNABLE_DEV;
|
|
549
|
+
assert(typeof yes === 'boolean');
|
|
550
|
+
return yes;
|
|
551
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { getViteDevScript };
|
|
2
|
-
import { assert, assertUsage, assertWarning } from '../../utils.js';
|
|
2
|
+
import { assert, assertUsage, assertWarning, getViteRPC } from '../../utils.js';
|
|
3
3
|
import pc from '@brillout/picocolors';
|
|
4
4
|
const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
|
|
5
5
|
async function getViteDevScript(pageContext) {
|
|
@@ -11,7 +11,9 @@ async function getViteDevScript(pageContext) {
|
|
|
11
11
|
const fakeHtmlBegin = '<html> <head>'; // White space to test whether user is using a minifier
|
|
12
12
|
const fakeHtmlEnd = '</head><body></body></html>';
|
|
13
13
|
let fakeHtml = fakeHtmlBegin + fakeHtmlEnd;
|
|
14
|
-
fakeHtml =
|
|
14
|
+
fakeHtml = viteDevServer
|
|
15
|
+
? await viteDevServer.transformIndexHtml('/', fakeHtml)
|
|
16
|
+
: await getViteRPC().transformIndexHtmlRPC(fakeHtml);
|
|
15
17
|
assertUsage(!fakeHtml.includes('vite-plugin-pwa'), `The HTML transformer of ${pc.cyan('vite-plugin-pwa')} cannot be applied, see workaround at https://github.com/vikejs/vike/issues/388#issuecomment-1199280084`);
|
|
16
18
|
assertUsage(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')), `Vite plugins that minify the HTML cannot be applied, see https://github.com/vikejs/vike/issues/224`);
|
|
17
19
|
assertUsage(fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd), `You are using a Vite Plugin that transforms the HTML in a way that conflicts with Vike. ${reachOutCTA}`);
|
|
@@ -41,24 +41,12 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
41
41
|
pages: {
|
|
42
42
|
[k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
|
|
43
43
|
};
|
|
44
|
-
} & ({
|
|
44
|
+
} & (({
|
|
45
45
|
_isProduction: false;
|
|
46
46
|
_isPrerendering: false;
|
|
47
47
|
assetsManifest: null;
|
|
48
|
-
_viteDevServer: import("vite").ViteDevServer;
|
|
49
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
50
|
-
viteConfigRuntime: {
|
|
51
|
-
root: string;
|
|
52
|
-
build: {
|
|
53
|
-
outDir: string;
|
|
54
|
-
};
|
|
55
|
-
_baseViteOriginal: string;
|
|
56
|
-
vitePluginServerEntry: {
|
|
57
|
-
inject: boolean | undefined;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
baseServer: string;
|
|
61
|
-
baseAssets: string;
|
|
48
|
+
_viteDevServer: import("vite").ViteDevServer | undefined;
|
|
49
|
+
viteConfig: import("vite").ResolvedConfig | undefined;
|
|
62
50
|
isClientSide: false;
|
|
63
51
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
64
52
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
@@ -68,19 +56,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
68
56
|
_isProduction: true;
|
|
69
57
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
70
58
|
_viteDevServer: null;
|
|
71
|
-
viteConfigRuntime: {
|
|
72
|
-
root: string;
|
|
73
|
-
build: {
|
|
74
|
-
outDir: string;
|
|
75
|
-
};
|
|
76
|
-
_baseViteOriginal: string;
|
|
77
|
-
vitePluginServerEntry: {
|
|
78
|
-
inject: boolean | undefined;
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
59
|
_usesClientRouter: boolean;
|
|
82
|
-
baseServer: string;
|
|
83
|
-
baseAssets: string;
|
|
84
60
|
isClientSide: false;
|
|
85
61
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
86
62
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
@@ -90,6 +66,13 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
90
66
|
_isProduction: true;
|
|
91
67
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
92
68
|
_viteDevServer: null;
|
|
69
|
+
_usesClientRouter: boolean;
|
|
70
|
+
isClientSide: false;
|
|
71
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
72
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
73
|
+
}) & {
|
|
74
|
+
baseServer: string;
|
|
75
|
+
baseAssets: string;
|
|
93
76
|
viteConfigRuntime: {
|
|
94
77
|
root: string;
|
|
95
78
|
build: {
|
|
@@ -100,12 +83,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
100
83
|
inject: boolean | undefined;
|
|
101
84
|
};
|
|
102
85
|
};
|
|
103
|
-
_usesClientRouter: boolean;
|
|
104
|
-
baseServer: string;
|
|
105
|
-
baseAssets: string;
|
|
106
|
-
isClientSide: false;
|
|
107
|
-
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
108
|
-
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
109
86
|
});
|
|
110
87
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
111
88
|
_baseServer: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { getPageAssets };
|
|
2
2
|
export { setResolveClientEntriesDev };
|
|
3
3
|
export { resolveIncludeAssetsImportedByServer };
|
|
4
|
-
import { assert, prependBase, toPosixPath, unique, getGlobalObject } from '../utils.js';
|
|
4
|
+
import { assert, prependBase, toPosixPath, unique, getGlobalObject, getViteRPC } from '../utils.js';
|
|
5
5
|
import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
|
|
6
6
|
import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
|
|
7
7
|
import { inferMediaType } from './inferMediaType.js';
|
|
@@ -15,7 +15,9 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
15
15
|
const { _isProduction: isProduction } = globalContext;
|
|
16
16
|
const isDev = !isProduction;
|
|
17
17
|
const { assetUrls, clientEntriesSrc } = isDev
|
|
18
|
-
?
|
|
18
|
+
? !globalContext._viteDevServer
|
|
19
|
+
? await getViteRPC().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
|
|
20
|
+
: await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
|
|
19
21
|
: retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries, resolveIncludeAssetsImportedByServer(globalContext.config));
|
|
20
22
|
let pageAssets = [];
|
|
21
23
|
unique([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
|
|
@@ -56,24 +56,12 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
56
56
|
pages: {
|
|
57
57
|
[k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
|
|
58
58
|
};
|
|
59
|
-
} & ({
|
|
59
|
+
} & (({
|
|
60
60
|
_isProduction: false;
|
|
61
61
|
_isPrerendering: false;
|
|
62
62
|
assetsManifest: null;
|
|
63
|
-
_viteDevServer: import("vite").ViteDevServer;
|
|
64
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
65
|
-
viteConfigRuntime: {
|
|
66
|
-
root: string;
|
|
67
|
-
build: {
|
|
68
|
-
outDir: string;
|
|
69
|
-
};
|
|
70
|
-
_baseViteOriginal: string;
|
|
71
|
-
vitePluginServerEntry: {
|
|
72
|
-
inject: boolean | undefined;
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
baseServer: string;
|
|
76
|
-
baseAssets: string;
|
|
63
|
+
_viteDevServer: import("vite").ViteDevServer | undefined;
|
|
64
|
+
viteConfig: import("vite").ResolvedConfig | undefined;
|
|
77
65
|
isClientSide: false;
|
|
78
66
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
79
67
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
@@ -83,19 +71,7 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
83
71
|
_isProduction: true;
|
|
84
72
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
85
73
|
_viteDevServer: null;
|
|
86
|
-
viteConfigRuntime: {
|
|
87
|
-
root: string;
|
|
88
|
-
build: {
|
|
89
|
-
outDir: string;
|
|
90
|
-
};
|
|
91
|
-
_baseViteOriginal: string;
|
|
92
|
-
vitePluginServerEntry: {
|
|
93
|
-
inject: boolean | undefined;
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
74
|
_usesClientRouter: boolean;
|
|
97
|
-
baseServer: string;
|
|
98
|
-
baseAssets: string;
|
|
99
75
|
isClientSide: false;
|
|
100
76
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
101
77
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
@@ -105,6 +81,13 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
105
81
|
_isProduction: true;
|
|
106
82
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
107
83
|
_viteDevServer: null;
|
|
84
|
+
_usesClientRouter: boolean;
|
|
85
|
+
isClientSide: false;
|
|
86
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
87
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
88
|
+
}) & {
|
|
89
|
+
baseServer: string;
|
|
90
|
+
baseAssets: string;
|
|
108
91
|
viteConfigRuntime: {
|
|
109
92
|
root: string;
|
|
110
93
|
build: {
|
|
@@ -115,12 +98,6 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
115
98
|
inject: boolean | undefined;
|
|
116
99
|
};
|
|
117
100
|
};
|
|
118
|
-
_usesClientRouter: boolean;
|
|
119
|
-
baseServer: string;
|
|
120
|
-
baseAssets: string;
|
|
121
|
-
isClientSide: false;
|
|
122
|
-
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
123
|
-
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
124
101
|
});
|
|
125
102
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
126
103
|
_baseServer: string;
|
|
@@ -191,24 +168,12 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
191
168
|
pages: {
|
|
192
169
|
[k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
|
|
193
170
|
};
|
|
194
|
-
} & ({
|
|
171
|
+
} & (({
|
|
195
172
|
_isProduction: false;
|
|
196
173
|
_isPrerendering: false;
|
|
197
174
|
assetsManifest: null;
|
|
198
|
-
_viteDevServer: import("vite").ViteDevServer;
|
|
199
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
200
|
-
viteConfigRuntime: {
|
|
201
|
-
root: string;
|
|
202
|
-
build: {
|
|
203
|
-
outDir: string;
|
|
204
|
-
};
|
|
205
|
-
_baseViteOriginal: string;
|
|
206
|
-
vitePluginServerEntry: {
|
|
207
|
-
inject: boolean | undefined;
|
|
208
|
-
};
|
|
209
|
-
};
|
|
210
|
-
baseServer: string;
|
|
211
|
-
baseAssets: string;
|
|
175
|
+
_viteDevServer: import("vite").ViteDevServer | undefined;
|
|
176
|
+
viteConfig: import("vite").ResolvedConfig | undefined;
|
|
212
177
|
isClientSide: false;
|
|
213
178
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
214
179
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
@@ -218,19 +183,7 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
218
183
|
_isProduction: true;
|
|
219
184
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
220
185
|
_viteDevServer: null;
|
|
221
|
-
viteConfigRuntime: {
|
|
222
|
-
root: string;
|
|
223
|
-
build: {
|
|
224
|
-
outDir: string;
|
|
225
|
-
};
|
|
226
|
-
_baseViteOriginal: string;
|
|
227
|
-
vitePluginServerEntry: {
|
|
228
|
-
inject: boolean | undefined;
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
186
|
_usesClientRouter: boolean;
|
|
232
|
-
baseServer: string;
|
|
233
|
-
baseAssets: string;
|
|
234
187
|
isClientSide: false;
|
|
235
188
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
236
189
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
@@ -240,6 +193,13 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
240
193
|
_isProduction: true;
|
|
241
194
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
242
195
|
_viteDevServer: null;
|
|
196
|
+
_usesClientRouter: boolean;
|
|
197
|
+
isClientSide: false;
|
|
198
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
199
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
200
|
+
}) & {
|
|
201
|
+
baseServer: string;
|
|
202
|
+
baseAssets: string;
|
|
243
203
|
viteConfigRuntime: {
|
|
244
204
|
root: string;
|
|
245
205
|
build: {
|
|
@@ -250,12 +210,6 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
|
|
|
250
210
|
inject: boolean | undefined;
|
|
251
211
|
};
|
|
252
212
|
};
|
|
253
|
-
_usesClientRouter: boolean;
|
|
254
|
-
baseServer: string;
|
|
255
|
-
baseAssets: string;
|
|
256
|
-
isClientSide: false;
|
|
257
|
-
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
258
|
-
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
259
213
|
});
|
|
260
214
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
261
215
|
_baseServer: string;
|