vike 0.4.237-commit-92dc549 → 0.4.237-commit-2d6f480
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/runtime-server-routing/utils.js +1 -1
- package/dist/cjs/node/api/build.js +4 -30
- package/dist/cjs/node/api/prepareViteApiCall.js +0 -1
- package/dist/cjs/node/prerender/runPrerender.js +5 -6
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -1
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +1 -11
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +42 -46
- package/dist/cjs/node/runtime/renderPage/{renderPageAlreadyRouted.js → renderPageAfterRoute.js} +3 -4
- package/dist/cjs/node/runtime/renderPage.js +6 -9
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -5
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +4 -11
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +120 -14
- package/dist/cjs/node/vite/plugins/pluginBuild.js +1 -2
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +3 -2
- package/dist/cjs/node/vite/plugins/pluginFileEnv.js +4 -3
- package/dist/cjs/node/vite/plugins/pluginPreview.js +1 -11
- package/dist/cjs/node/vite/shared/getOutDirs.js +5 -11
- package/dist/cjs/node/vite/shared/isViteServerSide.js +46 -19
- package/dist/cjs/shared/page-configs/{loadPageEntry.js → loadAndParseVirtualFilePageEntry.js} +2 -2
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +5 -0
- package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -1
- package/dist/cjs/shared/route/index.js +0 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/{augmentType.js → updateType.js} +3 -3
- package/dist/esm/__internal/index.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +6 -6
- package/dist/esm/client/runtime-client-routing/utils.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/utils.js +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +3 -3
- package/dist/esm/client/runtime-server-routing/utils.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/utils.js +1 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
- package/dist/esm/node/api/build.js +5 -31
- package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -2
- package/dist/esm/node/api/prepareViteApiCall.js +0 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +9 -300
- package/dist/esm/node/prerender/runPrerender.js +6 -7
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +4 -3
- package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -1
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +0 -1
- package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +1 -11
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -4
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +105 -19
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +44 -48
- package/dist/esm/node/runtime/renderPage/{renderPageAlreadyRouted.d.ts → renderPageAfterRoute.d.ts} +20 -4
- package/dist/esm/node/runtime/renderPage/{renderPageAlreadyRouted.js → renderPageAfterRoute.js} +5 -6
- package/dist/esm/node/runtime/renderPage.js +8 -11
- package/dist/esm/node/runtime/utils.d.ts +1 -1
- package/dist/esm/node/runtime/utils.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +0 -1
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +5 -7
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +3 -10
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +4 -0
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +120 -17
- package/dist/esm/node/vite/plugins/pluginBuild.js +1 -2
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +3 -2
- package/dist/esm/node/vite/plugins/pluginFileEnv.js +4 -3
- package/dist/esm/node/vite/plugins/pluginPreview.js +3 -13
- package/dist/esm/node/vite/shared/getOutDirs.d.ts +1 -3
- package/dist/esm/node/vite/shared/getOutDirs.js +6 -12
- package/dist/esm/node/vite/shared/isViteServerSide.d.ts +1 -1
- package/dist/esm/node/vite/shared/isViteServerSide.js +46 -19
- package/dist/esm/shared/page-configs/loadAndParseVirtualFilePageEntry.d.ts +3 -0
- package/dist/esm/shared/page-configs/{loadPageEntry.js → loadAndParseVirtualFilePageEntry.js} +2 -2
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +5 -0
- package/dist/esm/shared/route/execHookOnBeforeRoute.d.ts +3 -3
- package/dist/esm/shared/route/execHookOnBeforeRoute.js +0 -1
- package/dist/esm/shared/route/index.d.ts +5 -6
- package/dist/esm/shared/route/index.js +0 -1
- package/dist/esm/types/Config.d.ts +2 -4
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/updateType.d.ts +3 -0
- package/dist/esm/utils/updateType.js +7 -0
- package/package.json +3 -3
- package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +0 -52
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +0 -150
- package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +0 -23
- package/dist/esm/node/runtime/renderPage/debugPageFiles.js +0 -47
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.d.ts +0 -5
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +0 -145
- package/dist/esm/shared/page-configs/loadPageEntry.d.ts +0 -3
- package/dist/esm/utils/augmentType.d.ts +0 -3
- package/dist/esm/utils/augmentType.js +0 -7
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.debugPageFiles = debugPageFiles;
|
|
7
|
-
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
8
|
-
const utils_js_1 = require("../utils.js");
|
|
9
|
-
function debugPageFiles({ pageContext, isHtmlOnly, isClientRouting, pageFilesLoaded, pageFilesServerSide, pageFilesClientSide, clientEntries, clientDependencies, }) {
|
|
10
|
-
const debug = (0, utils_js_1.createDebugger)('vike:pageFiles', { serialization: { emptyArray: 'None' } });
|
|
11
|
-
const padding = ' - ';
|
|
12
|
-
debug('All page files:', printPageFiles(pageContext._globalContext._pageFilesAll, true));
|
|
13
|
-
debug(`URL:`, pageContext.urlOriginal);
|
|
14
|
-
debug.options({ serialization: { emptyArray: 'No match' } })(`Routing:`, printRouteMatches(pageContext._debugRouteMatches));
|
|
15
|
-
debug(`pageId:`, pageContext.pageId);
|
|
16
|
-
debug('Page type:', isHtmlOnly ? 'HTML-only' : 'SSR/SPA');
|
|
17
|
-
debug(`Routing type:`, !isHtmlOnly && isClientRouting ? 'Client Routing' : 'Server Routing');
|
|
18
|
-
debug('Server-side page files:', printPageFiles(pageFilesLoaded));
|
|
19
|
-
(0, utils_js_1.assert)(samePageFiles(pageFilesLoaded, pageFilesServerSide));
|
|
20
|
-
debug('Client-side page files:', printPageFiles(pageFilesClientSide));
|
|
21
|
-
debug('Client-side entries:', clientEntries);
|
|
22
|
-
debug('Client-side dependencies:', clientDependencies);
|
|
23
|
-
return;
|
|
24
|
-
function printRouteMatches(debugRouteMatches) {
|
|
25
|
-
if (debugRouteMatches === 'ROUTING_ERROR') {
|
|
26
|
-
return 'Routing Failed';
|
|
27
|
-
}
|
|
28
|
-
if (debugRouteMatches === 'CUSTOM_ROUTING') {
|
|
29
|
-
return 'Custom Routing';
|
|
30
|
-
}
|
|
31
|
-
return debugRouteMatches;
|
|
32
|
-
}
|
|
33
|
-
function printPageFiles(pageFiles, genericPageFilesLast = false) {
|
|
34
|
-
if (pageFiles.length === 0) {
|
|
35
|
-
return 'None';
|
|
36
|
-
}
|
|
37
|
-
return ('\n' +
|
|
38
|
-
pageFiles
|
|
39
|
-
.sort((p1, p2) => p1.filePath.localeCompare(p2.filePath))
|
|
40
|
-
.sort((0, utils_js_1.makeFirst)((p) => (p.isRendererPageFile ? !genericPageFilesLast : null)))
|
|
41
|
-
.sort((0, utils_js_1.makeFirst)((p) => (p.isDefaultPageFile ? !genericPageFilesLast : null)))
|
|
42
|
-
.map((p) => p.filePath)
|
|
43
|
-
.map((s) => s.split('_default.page.').join(`${picocolors_1.default.blue('_default')}.page.`))
|
|
44
|
-
.map((s) => s.split('/renderer/').join(`/${picocolors_1.default.red('renderer')}/`))
|
|
45
|
-
.map((s) => padding + s)
|
|
46
|
-
.join('\n'));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function samePageFiles(pageFiles1, pageFiles2) {
|
|
50
|
-
return (pageFiles1.every((p1) => pageFiles2.some((p2) => p2.filePath === p1.filePath)) &&
|
|
51
|
-
pageFiles2.every((p2) => pageFiles1.some((p1) => p1.filePath === p2.filePath)));
|
|
52
|
-
}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.pluginAutoFullBuild = pluginAutoFullBuild;
|
|
7
|
-
exports.isPrerenderForceExit = isPrerenderForceExit;
|
|
8
|
-
const vite_1 = require("vite");
|
|
9
|
-
const utils_js_1 = require("../../utils.js");
|
|
10
|
-
const context_js_1 = require("../../../prerender/context.js");
|
|
11
|
-
const isViteCliCall_js_1 = require("../../shared/isViteCliCall.js");
|
|
12
|
-
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
13
|
-
const logErrorHint_js_1 = require("../../../runtime/renderPage/logErrorHint.js");
|
|
14
|
-
const resolveVikeConfigInternal_js_1 = require("../../shared/resolveVikeConfigInternal.js");
|
|
15
|
-
const context_js_2 = require("../../../api/context.js");
|
|
16
|
-
const handleAssetsManifest_js_1 = require("./handleAssetsManifest.js");
|
|
17
|
-
const isViteServerSide_js_1 = require("../../shared/isViteServerSide.js");
|
|
18
|
-
const runPrerenderEntry_js_1 = require("../../../prerender/runPrerenderEntry.js");
|
|
19
|
-
const getManifestFilePathRelative_js_1 = require("../../shared/getManifestFilePathRelative.js");
|
|
20
|
-
const globalObject = (0, utils_js_1.getGlobalObject)('build/pluginAutoFullBuild.ts', {
|
|
21
|
-
forceExit: false,
|
|
22
|
-
});
|
|
23
|
-
function pluginAutoFullBuild() {
|
|
24
|
-
let config;
|
|
25
|
-
return [
|
|
26
|
-
{
|
|
27
|
-
name: 'vike:build:pluginAutoFullBuild',
|
|
28
|
-
apply: 'build',
|
|
29
|
-
enforce: 'pre',
|
|
30
|
-
async configResolved(config_) {
|
|
31
|
-
config = config_;
|
|
32
|
-
await abortViteBuildSsr();
|
|
33
|
-
},
|
|
34
|
-
writeBundle: {
|
|
35
|
-
/* We can't use this because it breaks Vite's logging. TO-DO/eventually: try again with latest Vite version.
|
|
36
|
-
sequential: true,
|
|
37
|
-
order: 'pre',
|
|
38
|
-
*/
|
|
39
|
-
async handler(options, bundle) {
|
|
40
|
-
try {
|
|
41
|
-
await (0, handleAssetsManifest_js_1.handleAssetsManifest)(config, this.environment, options, bundle);
|
|
42
|
-
await triggerFullBuild(config, this.environment, bundle);
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
// We use try-catch also because:
|
|
46
|
-
// - Vite/Rollup swallows errors thrown inside the writeBundle() hook. (It doesn't swallow errors thrown inside the first writeBundle() hook while building the client-side, but it does swallow errors thrown inside the second writeBundle() while building the server-side triggered after Vike calls Vite's `build()` API.)
|
|
47
|
-
// - Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
48
|
-
console.error(err);
|
|
49
|
-
(0, logErrorHint_js_1.logErrorHint)(err);
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
name: 'vike:build:pluginAutoFullBuild:post',
|
|
57
|
-
apply: 'build',
|
|
58
|
-
enforce: 'post',
|
|
59
|
-
closeBundle: {
|
|
60
|
-
sequential: true,
|
|
61
|
-
order: 'post',
|
|
62
|
-
async handler() {
|
|
63
|
-
(0, utils_js_1.onSetupBuild)();
|
|
64
|
-
(0, handleAssetsManifest_js_1.handleAssetsManifest_assertUsageCssTarget)(config, this.environment);
|
|
65
|
-
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
66
|
-
if (globalObject.forceExit &&
|
|
67
|
-
// Let vike:build:pluginBuildApp force exit
|
|
68
|
-
!vikeConfig.config.vite6BuilderApp) {
|
|
69
|
-
(0, runPrerenderEntry_js_1.runPrerender_forceExit)();
|
|
70
|
-
(0, utils_js_1.assert)(false);
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
];
|
|
76
|
-
}
|
|
77
|
-
async function triggerFullBuild(config, viteEnv, bundle) {
|
|
78
|
-
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
79
|
-
// Whether builder.buildApp() is being used, see plugin:build:pluginBuildApp
|
|
80
|
-
const isBuilderApp = vikeConfig.config.vite6BuilderApp;
|
|
81
|
-
// If builder.buildApp() => trigger at end of `this.environment.name === 'ssr'`.
|
|
82
|
-
// Else => trigger at end of client-side build.
|
|
83
|
-
if (isBuilderApp ? !(0, isViteServerSide_js_1.isViteServerSide_onlySsrEnv)(config, viteEnv) : !(0, isViteServerSide_js_1.isViteClientSide)(config, viteEnv))
|
|
84
|
-
return;
|
|
85
|
-
if (isEntirelyDisabled(vikeConfig))
|
|
86
|
-
return;
|
|
87
|
-
// Workaround for @vitejs/plugin-legacy
|
|
88
|
-
// - The legacy plugin triggers its own Rollup build for the client-side.
|
|
89
|
-
// - The legacy plugin doesn't generate a manifest => we can use that to detect the legacy plugin build.
|
|
90
|
-
// - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
|
|
91
|
-
if (!bundle[(0, getManifestFilePathRelative_js_1.getManifestFilePathRelative)(config.build.manifest)])
|
|
92
|
-
return;
|
|
93
|
-
const configInline = getFullBuildInlineConfig(config);
|
|
94
|
-
if (!isBuilderApp) {
|
|
95
|
-
await (0, vite_1.build)(setSSR(configInline));
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
// The server build is already called by builder.buildApp()
|
|
99
|
-
}
|
|
100
|
-
if ((0, context_js_1.isPrerenderAutoRunEnabled)(vikeConfig)) {
|
|
101
|
-
const res = await (0, runPrerenderEntry_js_1.runPrerenderFromAutoRun)(configInline);
|
|
102
|
-
globalObject.forceExit = res.forceExit;
|
|
103
|
-
(0, utils_js_1.assert)((0, context_js_1.wasPrerenderRun)());
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
function setSSR(configInline) {
|
|
107
|
-
return {
|
|
108
|
-
...configInline,
|
|
109
|
-
build: {
|
|
110
|
-
...configInline.build,
|
|
111
|
-
ssr: true,
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
async function abortViteBuildSsr() {
|
|
116
|
-
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
117
|
-
if (vikeConfig.config.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
|
|
118
|
-
(0, utils_js_1.assertWarning)(false, `The CLI call ${picocolors_1.default.cyan('$ vite build --ssr')} is superfluous since ${picocolors_1.default.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 ${picocolors_1.default.cyan('build()')} API.`, { onlyOnce: true });
|
|
119
|
-
process.exit(0);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function isEntirelyDisabled(vikeConfig) {
|
|
123
|
-
const { disableAutoFullBuild } = vikeConfig.config;
|
|
124
|
-
if (disableAutoFullBuild === undefined || disableAutoFullBuild === 'prerender') {
|
|
125
|
-
const isUserUsingViteApi = !(0, isViteCliCall_js_1.isViteCliCall)() && !(0, context_js_2.isVikeCliOrApi)();
|
|
126
|
-
return isUserUsingViteApi;
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
return disableAutoFullBuild;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
function isPrerenderForceExit() {
|
|
133
|
-
return globalObject.forceExit;
|
|
134
|
-
}
|
|
135
|
-
function getFullBuildInlineConfig(config) {
|
|
136
|
-
const configFromCli = !(0, isViteCliCall_js_1.isViteCliCall)() ? null : (0, isViteCliCall_js_1.getViteConfigFromCli)();
|
|
137
|
-
if (config._viteConfigFromUserEnhanced) {
|
|
138
|
-
return config._viteConfigFromUserEnhanced;
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
return {
|
|
142
|
-
...configFromCli,
|
|
143
|
-
configFile: configFromCli?.configFile || config.configFile,
|
|
144
|
-
root: config.root,
|
|
145
|
-
build: {
|
|
146
|
-
...configFromCli?.build,
|
|
147
|
-
},
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export { debugPageFiles };
|
|
2
|
-
export type { PageContextDebugRouteMatches };
|
|
3
|
-
import type { RouteMatches } from '../../../shared/route/index.js';
|
|
4
|
-
import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
5
|
-
import type { PageFile } from '../../../shared/getPageFiles.js';
|
|
6
|
-
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
7
|
-
type PageContextDebugRouteMatches = {
|
|
8
|
-
_debugRouteMatches: 'ROUTING_ERROR' | RouteMatches;
|
|
9
|
-
};
|
|
10
|
-
declare function debugPageFiles({ pageContext, isHtmlOnly, isClientRouting, pageFilesLoaded, pageFilesServerSide, pageFilesClientSide, clientEntries, clientDependencies, }: {
|
|
11
|
-
pageContext: {
|
|
12
|
-
urlOriginal: string;
|
|
13
|
-
pageId: string;
|
|
14
|
-
_globalContext: GlobalContextServerInternal;
|
|
15
|
-
} & PageContextDebugRouteMatches;
|
|
16
|
-
isHtmlOnly: boolean;
|
|
17
|
-
isClientRouting: boolean;
|
|
18
|
-
pageFilesLoaded: PageFile[];
|
|
19
|
-
pageFilesClientSide: PageFile[];
|
|
20
|
-
pageFilesServerSide: PageFile[];
|
|
21
|
-
clientEntries: string[];
|
|
22
|
-
clientDependencies: ClientDependency[];
|
|
23
|
-
}): void;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export { debugPageFiles };
|
|
2
|
-
import pc from '@brillout/picocolors';
|
|
3
|
-
import { assert, makeFirst, createDebugger } from '../utils.js';
|
|
4
|
-
function debugPageFiles({ pageContext, isHtmlOnly, isClientRouting, pageFilesLoaded, pageFilesServerSide, pageFilesClientSide, clientEntries, clientDependencies, }) {
|
|
5
|
-
const debug = createDebugger('vike:pageFiles', { serialization: { emptyArray: 'None' } });
|
|
6
|
-
const padding = ' - ';
|
|
7
|
-
debug('All page files:', printPageFiles(pageContext._globalContext._pageFilesAll, true));
|
|
8
|
-
debug(`URL:`, pageContext.urlOriginal);
|
|
9
|
-
debug.options({ serialization: { emptyArray: 'No match' } })(`Routing:`, printRouteMatches(pageContext._debugRouteMatches));
|
|
10
|
-
debug(`pageId:`, pageContext.pageId);
|
|
11
|
-
debug('Page type:', isHtmlOnly ? 'HTML-only' : 'SSR/SPA');
|
|
12
|
-
debug(`Routing type:`, !isHtmlOnly && isClientRouting ? 'Client Routing' : 'Server Routing');
|
|
13
|
-
debug('Server-side page files:', printPageFiles(pageFilesLoaded));
|
|
14
|
-
assert(samePageFiles(pageFilesLoaded, pageFilesServerSide));
|
|
15
|
-
debug('Client-side page files:', printPageFiles(pageFilesClientSide));
|
|
16
|
-
debug('Client-side entries:', clientEntries);
|
|
17
|
-
debug('Client-side dependencies:', clientDependencies);
|
|
18
|
-
return;
|
|
19
|
-
function printRouteMatches(debugRouteMatches) {
|
|
20
|
-
if (debugRouteMatches === 'ROUTING_ERROR') {
|
|
21
|
-
return 'Routing Failed';
|
|
22
|
-
}
|
|
23
|
-
if (debugRouteMatches === 'CUSTOM_ROUTING') {
|
|
24
|
-
return 'Custom Routing';
|
|
25
|
-
}
|
|
26
|
-
return debugRouteMatches;
|
|
27
|
-
}
|
|
28
|
-
function printPageFiles(pageFiles, genericPageFilesLast = false) {
|
|
29
|
-
if (pageFiles.length === 0) {
|
|
30
|
-
return 'None';
|
|
31
|
-
}
|
|
32
|
-
return ('\n' +
|
|
33
|
-
pageFiles
|
|
34
|
-
.sort((p1, p2) => p1.filePath.localeCompare(p2.filePath))
|
|
35
|
-
.sort(makeFirst((p) => (p.isRendererPageFile ? !genericPageFilesLast : null)))
|
|
36
|
-
.sort(makeFirst((p) => (p.isDefaultPageFile ? !genericPageFilesLast : null)))
|
|
37
|
-
.map((p) => p.filePath)
|
|
38
|
-
.map((s) => s.split('_default.page.').join(`${pc.blue('_default')}.page.`))
|
|
39
|
-
.map((s) => s.split('/renderer/').join(`/${pc.red('renderer')}/`))
|
|
40
|
-
.map((s) => padding + s)
|
|
41
|
-
.join('\n'));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
function samePageFiles(pageFiles1, pageFiles2) {
|
|
45
|
-
return (pageFiles1.every((p1) => pageFiles2.some((p2) => p2.filePath === p1.filePath)) &&
|
|
46
|
-
pageFiles2.every((p2) => pageFiles1.some((p1) => p1.filePath === p2.filePath)));
|
|
47
|
-
}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
export { pluginAutoFullBuild };
|
|
2
|
-
export { isPrerenderForceExit };
|
|
3
|
-
import { build } from 'vite';
|
|
4
|
-
import { assert, assertWarning, getGlobalObject, onSetupBuild } from '../../utils.js';
|
|
5
|
-
import { isPrerenderAutoRunEnabled, wasPrerenderRun } from '../../../prerender/context.js';
|
|
6
|
-
import { isViteCliCall, getViteConfigFromCli } from '../../shared/isViteCliCall.js';
|
|
7
|
-
import pc from '@brillout/picocolors';
|
|
8
|
-
import { logErrorHint } from '../../../runtime/renderPage/logErrorHint.js';
|
|
9
|
-
import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
|
|
10
|
-
import { isVikeCliOrApi } from '../../../api/context.js';
|
|
11
|
-
import { handleAssetsManifest, handleAssetsManifest_assertUsageCssTarget } from './handleAssetsManifest.js';
|
|
12
|
-
import { isViteClientSide, isViteServerSide_onlySsrEnv } from '../../shared/isViteServerSide.js';
|
|
13
|
-
import { runPrerender_forceExit, runPrerenderFromAutoRun } from '../../../prerender/runPrerenderEntry.js';
|
|
14
|
-
import { getManifestFilePathRelative } from '../../shared/getManifestFilePathRelative.js';
|
|
15
|
-
const globalObject = getGlobalObject('build/pluginAutoFullBuild.ts', {
|
|
16
|
-
forceExit: false,
|
|
17
|
-
});
|
|
18
|
-
function pluginAutoFullBuild() {
|
|
19
|
-
let config;
|
|
20
|
-
return [
|
|
21
|
-
{
|
|
22
|
-
name: 'vike:build:pluginAutoFullBuild',
|
|
23
|
-
apply: 'build',
|
|
24
|
-
enforce: 'pre',
|
|
25
|
-
async configResolved(config_) {
|
|
26
|
-
config = config_;
|
|
27
|
-
await abortViteBuildSsr();
|
|
28
|
-
},
|
|
29
|
-
writeBundle: {
|
|
30
|
-
/* We can't use this because it breaks Vite's logging. TO-DO/eventually: try again with latest Vite version.
|
|
31
|
-
sequential: true,
|
|
32
|
-
order: 'pre',
|
|
33
|
-
*/
|
|
34
|
-
async handler(options, bundle) {
|
|
35
|
-
try {
|
|
36
|
-
await handleAssetsManifest(config, this.environment, options, bundle);
|
|
37
|
-
await triggerFullBuild(config, this.environment, bundle);
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
// We use try-catch also because:
|
|
41
|
-
// - Vite/Rollup swallows errors thrown inside the writeBundle() hook. (It doesn't swallow errors thrown inside the first writeBundle() hook while building the client-side, but it does swallow errors thrown inside the second writeBundle() while building the server-side triggered after Vike calls Vite's `build()` API.)
|
|
42
|
-
// - Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
43
|
-
console.error(err);
|
|
44
|
-
logErrorHint(err);
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: 'vike:build:pluginAutoFullBuild:post',
|
|
52
|
-
apply: 'build',
|
|
53
|
-
enforce: 'post',
|
|
54
|
-
closeBundle: {
|
|
55
|
-
sequential: true,
|
|
56
|
-
order: 'post',
|
|
57
|
-
async handler() {
|
|
58
|
-
onSetupBuild();
|
|
59
|
-
handleAssetsManifest_assertUsageCssTarget(config, this.environment);
|
|
60
|
-
const vikeConfig = await getVikeConfigInternal();
|
|
61
|
-
if (globalObject.forceExit &&
|
|
62
|
-
// Let vike:build:pluginBuildApp force exit
|
|
63
|
-
!vikeConfig.config.vite6BuilderApp) {
|
|
64
|
-
runPrerender_forceExit();
|
|
65
|
-
assert(false);
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
];
|
|
71
|
-
}
|
|
72
|
-
async function triggerFullBuild(config, viteEnv, bundle) {
|
|
73
|
-
const vikeConfig = await getVikeConfigInternal();
|
|
74
|
-
// Whether builder.buildApp() is being used, see plugin:build:pluginBuildApp
|
|
75
|
-
const isBuilderApp = vikeConfig.config.vite6BuilderApp;
|
|
76
|
-
// If builder.buildApp() => trigger at end of `this.environment.name === 'ssr'`.
|
|
77
|
-
// Else => trigger at end of client-side build.
|
|
78
|
-
if (isBuilderApp ? !isViteServerSide_onlySsrEnv(config, viteEnv) : !isViteClientSide(config, viteEnv))
|
|
79
|
-
return;
|
|
80
|
-
if (isEntirelyDisabled(vikeConfig))
|
|
81
|
-
return;
|
|
82
|
-
// Workaround for @vitejs/plugin-legacy
|
|
83
|
-
// - The legacy plugin triggers its own Rollup build for the client-side.
|
|
84
|
-
// - The legacy plugin doesn't generate a manifest => we can use that to detect the legacy plugin build.
|
|
85
|
-
// - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
|
|
86
|
-
if (!bundle[getManifestFilePathRelative(config.build.manifest)])
|
|
87
|
-
return;
|
|
88
|
-
const configInline = getFullBuildInlineConfig(config);
|
|
89
|
-
if (!isBuilderApp) {
|
|
90
|
-
await build(setSSR(configInline));
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
// The server build is already called by builder.buildApp()
|
|
94
|
-
}
|
|
95
|
-
if (isPrerenderAutoRunEnabled(vikeConfig)) {
|
|
96
|
-
const res = await runPrerenderFromAutoRun(configInline);
|
|
97
|
-
globalObject.forceExit = res.forceExit;
|
|
98
|
-
assert(wasPrerenderRun());
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function setSSR(configInline) {
|
|
102
|
-
return {
|
|
103
|
-
...configInline,
|
|
104
|
-
build: {
|
|
105
|
-
...configInline.build,
|
|
106
|
-
ssr: true,
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
async function abortViteBuildSsr() {
|
|
111
|
-
const vikeConfig = await getVikeConfigInternal();
|
|
112
|
-
if (vikeConfig.config.disableAutoFullBuild !== true && isViteCliCall() && getViteConfigFromCli()?.build.ssr) {
|
|
113
|
-
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 });
|
|
114
|
-
process.exit(0);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
function isEntirelyDisabled(vikeConfig) {
|
|
118
|
-
const { disableAutoFullBuild } = vikeConfig.config;
|
|
119
|
-
if (disableAutoFullBuild === undefined || disableAutoFullBuild === 'prerender') {
|
|
120
|
-
const isUserUsingViteApi = !isViteCliCall() && !isVikeCliOrApi();
|
|
121
|
-
return isUserUsingViteApi;
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
return disableAutoFullBuild;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
function isPrerenderForceExit() {
|
|
128
|
-
return globalObject.forceExit;
|
|
129
|
-
}
|
|
130
|
-
function getFullBuildInlineConfig(config) {
|
|
131
|
-
const configFromCli = !isViteCliCall() ? null : getViteConfigFromCli();
|
|
132
|
-
if (config._viteConfigFromUserEnhanced) {
|
|
133
|
-
return config._viteConfigFromUserEnhanced;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
return {
|
|
137
|
-
...configFromCli,
|
|
138
|
-
configFile: configFromCli?.configFile || config.configFile,
|
|
139
|
-
root: config.root,
|
|
140
|
-
build: {
|
|
141
|
-
...configFromCli?.build,
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
}
|