vike 0.4.220-commit-af5c91f → 0.4.221-commit-8577456
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/__internal/index.js +5 -23
- package/dist/cjs/node/api/build.js +55 -11
- package/dist/cjs/node/api/prepareViteApiCall.js +20 -17
- package/dist/cjs/node/api/prerender.js +1 -0
- package/dist/cjs/node/api/utils.js +1 -0
- package/dist/cjs/node/plugin/index.js +2 -0
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +9 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
- package/dist/cjs/node/plugin/plugins/buildApp.js +72 -0
- package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +8 -10
- package/dist/cjs/node/plugin/plugins/buildConfig.js +5 -5
- package/dist/cjs/node/plugin/plugins/buildEntry/index.js +2 -2
- package/dist/cjs/node/plugin/plugins/commonConfig.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +8 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +31 -31
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +53 -21
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +159 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +205 -343
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +7 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +3 -3
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -4
- package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +20 -0
- package/dist/cjs/node/plugin/shared/getOutDirs.js +50 -38
- package/dist/cjs/node/prerender/runPrerender.js +29 -30
- package/dist/cjs/node/runtime/globalContext.js +186 -100
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -3
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
- package/dist/cjs/node/runtime/html/injectAssets.js +4 -4
- package/dist/cjs/node/runtime/html/renderHtml.js +4 -5
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -3
- package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +4 -4
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +5 -4
- package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -2
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +10 -9
- package/dist/cjs/node/runtime/renderPage.js +27 -30
- package/dist/cjs/node/runtime/utils.js +1 -0
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +5 -3
- package/dist/cjs/node/shared/resolveBase.js +3 -5
- package/dist/cjs/shared/getPageConfigsRuntime.js +20 -0
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +4 -3
- package/dist/cjs/shared/getPageFiles.js +1 -3
- package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +13 -4
- package/dist/cjs/shared/route/loadPageRoutes.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +1 -1
- package/dist/cjs/utils/debug.js +8 -6
- package/dist/cjs/utils/findFile.js +1 -0
- package/dist/cjs/utils/objectAssignSafe.js +7 -0
- package/dist/esm/__internal/index.d.ts +2 -2
- package/dist/esm/__internal/index.js +7 -26
- package/dist/esm/client/client-routing-runtime/createPageContext.js +5 -9
- package/dist/esm/client/server-routing-runtime/getPageContext.js +3 -4
- package/dist/esm/client/shared/loadUserFilesClientSide.js +3 -2
- package/dist/esm/node/api/build.js +23 -12
- package/dist/esm/node/api/prepareViteApiCall.d.ts +4 -2
- package/dist/esm/node/api/prepareViteApiCall.js +20 -17
- package/dist/esm/node/api/prerender.js +1 -0
- package/dist/esm/node/api/utils.d.ts +1 -0
- package/dist/esm/node/api/utils.js +1 -0
- package/dist/esm/node/plugin/index.js +2 -0
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +10 -21
- package/dist/esm/node/plugin/plugins/baseUrls.js +1 -1
- package/dist/esm/node/plugin/plugins/buildApp.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/buildApp.js +70 -0
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -2
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +8 -10
- package/dist/esm/node/plugin/plugins/buildConfig.js +6 -6
- package/dist/esm/node/plugin/plugins/buildEntry/index.js +2 -2
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +8 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.d.ts +6 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +31 -31
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +52 -20
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.d.ts +39 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +154 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +2 -38
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +208 -346
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +7 -7
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.d.ts → virtual-files/isRuntimeEnvMatch.d.ts} +1 -1
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +2 -5
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +2 -0
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +17 -0
- package/dist/esm/node/plugin/shared/getOutDirs.d.ts +1 -1
- package/dist/esm/node/plugin/shared/getOutDirs.js +50 -38
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +2 -5
- package/dist/esm/node/prerender/runPrerender.d.ts +2 -2
- package/dist/esm/node/prerender/runPrerender.js +30 -31
- package/dist/esm/node/runtime/globalContext.d.ts +31 -29
- package/dist/esm/node/runtime/globalContext.js +186 -100
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.d.ts +1 -1
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +2 -3
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +4 -1
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
- package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets.js +4 -4
- package/dist/esm/node/runtime/html/renderHtml.js +4 -5
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -3
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -4
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +6 -5
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/log404/index.js +1 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +21 -5
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +10 -9
- package/dist/esm/node/runtime/renderPage.js +28 -31
- package/dist/esm/node/runtime/utils.d.ts +1 -0
- package/dist/esm/node/runtime/utils.js +1 -0
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +5 -3
- package/dist/esm/node/shared/resolveBase.d.ts +2 -1
- package/dist/esm/node/shared/resolveBase.js +3 -5
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +13 -0
- package/dist/esm/shared/getPageConfigsRuntime.js +18 -0
- package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +1 -1
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +4 -3
- package/dist/esm/shared/getPageFiles.d.ts +0 -1
- package/dist/esm/shared/getPageFiles.js +0 -1
- package/dist/esm/shared/page-configs/Config.d.ts +7 -0
- package/dist/esm/shared/page-configs/PageConfig.d.ts +9 -5
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +5 -7
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +13 -4
- package/dist/esm/shared/route/loadPageRoutes.js +1 -0
- 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 +1 -1
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +8 -6
- package/dist/esm/utils/findFile.js +1 -0
- package/dist/esm/utils/objectAssignSafe.d.ts +1 -0
- package/dist/esm/utils/objectAssignSafe.js +4 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +2 -2
- package/dist/cjs/shared/getPageFiles/getPageFiles.js +0 -48
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/assertExtensions.d.ts +0 -6
- package/dist/esm/shared/getPageFiles/getPageFiles.d.ts +0 -15
- package/dist/esm/shared/getPageFiles/getPageFiles.js +0 -46
- /package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.d.ts → getVikeConfig/getConfigFileExport.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.d.ts → virtual-files/debug.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.d.ts → virtual-files/getVirtualFilePageConfigValuesAll.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.d.ts → virtual-files/getVirtualFilePageConfigs.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.debug = void 0;
|
|
4
|
-
const utils_js_1 = require("
|
|
4
|
+
const utils_js_1 = require("../../../../utils.js");
|
|
5
5
|
exports.debug = (0, utils_js_1.createDebugger)('vike:virtual-files');
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getVirtualFilePageConfigValuesAll = getVirtualFilePageConfigValuesAll;
|
|
4
|
-
const utils_js_1 = require("
|
|
5
|
-
const virtualFilePageConfigValuesAll_js_1 = require("
|
|
6
|
-
const getVikeConfig_js_1 = require("
|
|
7
|
-
const extractAssetsQuery_js_1 = require("
|
|
4
|
+
const utils_js_1 = require("../../../../utils.js");
|
|
5
|
+
const virtualFilePageConfigValuesAll_js_1 = require("../../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
|
|
6
|
+
const getVikeConfig_js_1 = require("../getVikeConfig.js");
|
|
7
|
+
const extractAssetsQuery_js_1 = require("../../../../../shared/extractAssetsQuery.js");
|
|
8
8
|
const debug_js_1 = require("./debug.js");
|
|
9
9
|
const isRuntimeEnvMatch_js_1 = require("./isRuntimeEnvMatch.js");
|
|
10
|
-
const serializeConfigValues_js_1 = require("
|
|
11
|
-
const fixServerAssets_js_1 = require("
|
|
12
|
-
const getConfigValueBuildTime_js_1 = require("
|
|
10
|
+
const serializeConfigValues_js_1 = require("../../../../../../shared/page-configs/serialize/serializeConfigValues.js");
|
|
11
|
+
const fixServerAssets_js_1 = require("../../../buildConfig/fixServerAssets.js");
|
|
12
|
+
const getConfigValueBuildTime_js_1 = require("../../../../../../shared/page-configs/getConfigValueBuildTime.js");
|
|
13
13
|
async function getVirtualFilePageConfigValuesAll(id, isDev, config) {
|
|
14
14
|
const result = (0, virtualFilePageConfigValuesAll_js_1.isVirtualFileIdPageConfigValuesAll)(id);
|
|
15
15
|
(0, utils_js_1.assert)(result);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getVirtualFilePageConfigs = getVirtualFilePageConfigs;
|
|
4
|
-
const virtualFilePageConfigValuesAll_js_1 = require("
|
|
4
|
+
const virtualFilePageConfigValuesAll_js_1 = require("../../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
|
|
5
5
|
const debug_js_1 = require("./debug.js");
|
|
6
|
-
const getVikeConfig_js_1 = require("
|
|
6
|
+
const getVikeConfig_js_1 = require("../getVikeConfig.js");
|
|
7
7
|
const isRuntimeEnvMatch_js_1 = require("./isRuntimeEnvMatch.js");
|
|
8
|
-
const serializeConfigValues_js_1 = require("
|
|
8
|
+
const serializeConfigValues_js_1 = require("../../../../../../shared/page-configs/serialize/serializeConfigValues.js");
|
|
9
9
|
async function getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRouting, config) {
|
|
10
10
|
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config, { doNotRestartViteOnError: true });
|
|
11
11
|
const { pageConfigs, pageConfigGlobal } = vikeConfig;
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.setGlobalContext = setGlobalContext;
|
|
4
4
|
const globalContext_js_1 = require("../../runtime/globalContext.js");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
|
-
const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
|
|
7
6
|
const getOutDirs_js_1 = require("../shared/getOutDirs.js");
|
|
8
7
|
function setGlobalContext() {
|
|
9
8
|
return [
|
|
@@ -24,7 +23,7 @@ function setGlobalContext() {
|
|
|
24
23
|
order: 'pre',
|
|
25
24
|
handler(_, env) {
|
|
26
25
|
const isViteDev = (0, utils_js_1.isDevCheck)(env);
|
|
27
|
-
(0, globalContext_js_1.
|
|
26
|
+
(0, globalContext_js_1.setGlobalContext_isProduction)(!isViteDev);
|
|
28
27
|
(0, utils_js_1.markSetup_isViteDev)(isViteDev);
|
|
29
28
|
}
|
|
30
29
|
}
|
|
@@ -38,8 +37,6 @@ function setGlobalContext() {
|
|
|
38
37
|
const { outDirRoot } = (0, getOutDirs_js_1.getOutDirs)(config);
|
|
39
38
|
(0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot); // Needed for `importServerProductionEntry({ outDir })` of @brillout/vite-plugin-server-entry
|
|
40
39
|
(0, globalContext_js_1.setGlobalContext_viteConfig)(config, outDirRoot);
|
|
41
|
-
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
|
|
42
|
-
(0, globalContext_js_1.setGlobalContext_vikeConfig)(vikeConfig);
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
42
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFullBuildInlineConfig = getFullBuildInlineConfig;
|
|
4
|
+
const isViteCliCall_js_1 = require("./isViteCliCall.js");
|
|
5
|
+
function getFullBuildInlineConfig(config) {
|
|
6
|
+
const configFromCli = !(0, isViteCliCall_js_1.isViteCliCall)() ? null : (0, isViteCliCall_js_1.getViteConfigFromCli)();
|
|
7
|
+
if (config._viteConfigEnhanced) {
|
|
8
|
+
return config._viteConfigEnhanced;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return {
|
|
12
|
+
...configFromCli,
|
|
13
|
+
configFile: configFromCli?.configFile || config.configFile,
|
|
14
|
+
root: config.root,
|
|
15
|
+
build: {
|
|
16
|
+
...configFromCli?.build
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -11,49 +11,34 @@ const viteIsSSR_js_1 = require("./viteIsSSR.js");
|
|
|
11
11
|
const debug = (0, utils_js_1.createDebugger)('vike:outDir');
|
|
12
12
|
function getOutDirs(config) {
|
|
13
13
|
debug('getOutDirs()', new Error().stack);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
outDirRoot = outDir;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
assertOutDirResolved(outDir, config);
|
|
22
|
-
(0, utils_js_1.assert)(outDir.endsWith('/server') || outDir.endsWith('/client'));
|
|
23
|
-
(0, utils_js_1.assert)('/client'.length === '/server'.length);
|
|
24
|
-
outDirRoot = outDir.slice(0, -1 * '/client'.length);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const outDirs = getOutDirsAll(outDirRoot, config.root);
|
|
28
|
-
debug('outDirRoot', outDirRoot);
|
|
29
|
-
debug('outDirs', outDirs);
|
|
14
|
+
const outDir = getOutDirFromViteResolvedConfig(config);
|
|
15
|
+
if (!isOutDirRoot(outDir))
|
|
16
|
+
assertOutDirResolved(outDir, config);
|
|
17
|
+
const outDirs = getOutDirsAll(outDir, config.root);
|
|
30
18
|
return outDirs;
|
|
31
19
|
}
|
|
32
20
|
/** Appends `client/` or `server/` to `config.build.outDir` */
|
|
33
|
-
function resolveOutDir(config) {
|
|
21
|
+
function resolveOutDir(config, isSSR) {
|
|
34
22
|
debug('resolveOutDir()', new Error().stack);
|
|
23
|
+
const isServerSide = (0, viteIsSSR_js_1.viteIsSSR)(config) || isSSR;
|
|
24
|
+
debug('isServerSide', isServerSide);
|
|
35
25
|
const outDir = getOutDirFromViteUserConfig(config) || 'dist';
|
|
36
|
-
debug('outDir',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
debug('outDir', outDir);
|
|
27
|
+
/* outDir may already be resolved when using Telefunc + Vike (because both Telefunc and Vike use this logic)
|
|
28
|
+
assert(isOutDirRoot(outDir))
|
|
29
|
+
*/
|
|
30
|
+
const { outDirClient, outDirServer } = getOutDirsAll(outDir);
|
|
31
|
+
if (isServerSide) {
|
|
32
|
+
debug('outDirServer', 'outDirServer');
|
|
33
|
+
return outDirServer;
|
|
41
34
|
}
|
|
42
35
|
else {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
debug('outDirServer', 'outDirServer');
|
|
46
|
-
return outDirServer;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
debug('outDirClient', 'outDirClient');
|
|
50
|
-
return outDirClient;
|
|
51
|
-
}
|
|
36
|
+
debug('outDirClient', 'outDirClient');
|
|
37
|
+
return outDirClient;
|
|
52
38
|
}
|
|
53
39
|
}
|
|
54
40
|
function determineOutDirs(outDirRoot) {
|
|
55
41
|
(0, utils_js_1.assertPosixPath)(outDirRoot);
|
|
56
|
-
(0, utils_js_1.assert)(!outDirRoot.endsWith('/'));
|
|
57
42
|
(0, utils_js_1.assert)(isOutDirRoot(outDirRoot));
|
|
58
43
|
const outDirClient = (0, utils_js_1.pathJoin)(outDirRoot, 'client');
|
|
59
44
|
const outDirServer = (0, utils_js_1.pathJoin)(outDirRoot, 'server');
|
|
@@ -61,8 +46,35 @@ function determineOutDirs(outDirRoot) {
|
|
|
61
46
|
assertIsNotOutDirRoot(outDirServer);
|
|
62
47
|
return { outDirClient, outDirServer };
|
|
63
48
|
}
|
|
64
|
-
function getOutDirsAll(
|
|
65
|
-
|
|
49
|
+
function getOutDirsAll(outDir, root) {
|
|
50
|
+
let outDirRoot;
|
|
51
|
+
{
|
|
52
|
+
if (isOutDirRoot(outDir)) {
|
|
53
|
+
outDirRoot = outDir;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
(0, utils_js_1.assert)(outDir.endsWith('/server') || outDir.endsWith('/client'));
|
|
57
|
+
(0, utils_js_1.assert)('/client'.length === '/server'.length);
|
|
58
|
+
outDirRoot = outDir.slice(0, -1 * '/client'.length);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
debug('outDirRoot', outDirRoot);
|
|
62
|
+
let outDirs;
|
|
63
|
+
if (root) {
|
|
64
|
+
outDirs = getOutDirsAllFromRootNormalized(outDirRoot, root);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
outDirs = getOutDirsAllFromRoot(outDirRoot);
|
|
68
|
+
}
|
|
69
|
+
debug('outDirs', outDirs);
|
|
70
|
+
return outDirs;
|
|
71
|
+
}
|
|
72
|
+
function getOutDirsAllFromRoot(outDirRoot) {
|
|
73
|
+
let { outDirClient, outDirServer } = determineOutDirs(outDirRoot);
|
|
74
|
+
return { outDirRoot, outDirClient, outDirServer };
|
|
75
|
+
}
|
|
76
|
+
function getOutDirsAllFromRootNormalized(outDirRoot, root) {
|
|
77
|
+
if (root && !outDirIsAbsolutePath(outDirRoot)) {
|
|
66
78
|
(0, utils_js_1.assertPosixPath)(outDirRoot);
|
|
67
79
|
(0, utils_js_1.assertPosixPath)(root);
|
|
68
80
|
outDirRoot = (0, utils_js_1.pathJoin)(root, outDirRoot);
|
|
@@ -90,7 +102,7 @@ function isOutDirRoot(outDirRot) {
|
|
|
90
102
|
function assertIsNotOutDirRoot(outDir) {
|
|
91
103
|
(0, utils_js_1.assert)(outDir.endsWith('/client') || outDir.endsWith('/server'));
|
|
92
104
|
}
|
|
93
|
-
/** `outDir` ends with `/server` or `/client` */
|
|
105
|
+
/** Assert that `outDir` ends with `/server` or `/client` */
|
|
94
106
|
function assertOutDirResolved(outDir, config) {
|
|
95
107
|
(0, utils_js_1.assertPosixPath)(outDir);
|
|
96
108
|
assertIsNotOutDirRoot(outDir);
|
|
@@ -108,16 +120,16 @@ function getOutDirFromViteUserConfig(config) {
|
|
|
108
120
|
let outDir = config.build?.outDir;
|
|
109
121
|
if (outDir === undefined)
|
|
110
122
|
return undefined;
|
|
111
|
-
outDir =
|
|
123
|
+
outDir = normalizeOutDir(outDir);
|
|
112
124
|
return outDir;
|
|
113
125
|
}
|
|
114
126
|
function getOutDirFromViteResolvedConfig(config) {
|
|
115
127
|
let outDir = config.build.outDir;
|
|
116
128
|
(0, utils_js_1.assert)(outDir);
|
|
117
|
-
outDir =
|
|
129
|
+
outDir = normalizeOutDir(outDir);
|
|
118
130
|
return outDir;
|
|
119
131
|
}
|
|
120
|
-
function
|
|
132
|
+
function normalizeOutDir(outDir) {
|
|
121
133
|
outDir = (0, utils_js_1.toPosixPath)(outDir);
|
|
122
134
|
outDir = outDir.replace(/\/+$/, ''); // remove trailing slashes
|
|
123
135
|
return outDir;
|
|
@@ -66,6 +66,8 @@ const prepareViteApiCall_js_1 = require("../api/prepareViteApiCall.js");
|
|
|
66
66
|
const context_js_1 = require("./context.js");
|
|
67
67
|
const resolvePrerenderConfig_js_1 = require("./resolvePrerenderConfig.js");
|
|
68
68
|
const getOutDirs_js_1 = require("../plugin/shared/getOutDirs.js");
|
|
69
|
+
const context_js_2 = require("../cli/context.js");
|
|
70
|
+
const isViteCliCall_js_1 = require("../plugin/shared/isViteCliCall.js");
|
|
69
71
|
async function runPrerenderFromAPI(options = {}) {
|
|
70
72
|
return await runPrerender(options, 'prerender()');
|
|
71
73
|
// - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
|
|
@@ -83,8 +85,9 @@ async function runPrerenderFromCLIPrerenderCommand() {
|
|
|
83
85
|
process.exit(1);
|
|
84
86
|
}
|
|
85
87
|
runPrerender_forceExit();
|
|
88
|
+
(0, utils_js_1.assert)(false);
|
|
86
89
|
}
|
|
87
|
-
async function runPrerenderFromAutoRun(viteConfig) {
|
|
90
|
+
async function runPrerenderFromAutoRun(viteConfig, config) {
|
|
88
91
|
let prerenderContextPublic;
|
|
89
92
|
try {
|
|
90
93
|
const ret = await runPrerender({ viteConfig });
|
|
@@ -95,7 +98,9 @@ async function runPrerenderFromAutoRun(viteConfig) {
|
|
|
95
98
|
(0, logErrorHint_js_1.logErrorHint)(err);
|
|
96
99
|
process.exit(1);
|
|
97
100
|
}
|
|
98
|
-
|
|
101
|
+
config.vike.prerenderContext = prerenderContextPublic;
|
|
102
|
+
const forceExit = (0, context_js_2.isVikeCli)() || (0, isViteCliCall_js_1.isViteCliCall)();
|
|
103
|
+
return { forceExit };
|
|
99
104
|
}
|
|
100
105
|
async function runPrerender(options = {}, standaloneTrigger) {
|
|
101
106
|
(0, context_js_1.setContextIsPrerendering)();
|
|
@@ -123,7 +128,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
123
128
|
const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
|
|
124
129
|
const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
|
|
125
130
|
await (0, globalContext_js_1.initGlobalContext_runPrerender)();
|
|
126
|
-
const globalContext = (0, globalContext_js_1.
|
|
131
|
+
const globalContext = await (0, globalContext_js_1.getGlobalContextInternal)();
|
|
127
132
|
globalContext.pageFilesAll.forEach(assertExportNames);
|
|
128
133
|
const prerenderContext = {
|
|
129
134
|
noExtraDir: noExtraDir ?? false,
|
|
@@ -133,10 +138,10 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
133
138
|
output: []
|
|
134
139
|
};
|
|
135
140
|
const doNotPrerenderList = [];
|
|
136
|
-
await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, concurrencyLimit);
|
|
137
|
-
await callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimit, doNotPrerenderList);
|
|
138
|
-
await handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit);
|
|
139
|
-
await callOnPrerenderStartHook(prerenderContext);
|
|
141
|
+
await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, concurrencyLimit, globalContext);
|
|
142
|
+
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
|
|
143
|
+
await handlePagesWithStaticRoutes(prerenderContext, globalContext, doNotPrerenderList, concurrencyLimit);
|
|
144
|
+
await callOnPrerenderStartHook(prerenderContext, globalContext);
|
|
140
145
|
let prerenderedCount = 0;
|
|
141
146
|
// Write files as soon as pages finish rendering (instead of writing all files at once only after all pages have rendered).
|
|
142
147
|
const onComplete = async (htmlFile) => {
|
|
@@ -146,17 +151,17 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
146
151
|
}
|
|
147
152
|
await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
|
|
148
153
|
};
|
|
149
|
-
await routeAndPrerender(prerenderContext, concurrencyLimit, onComplete);
|
|
154
|
+
await routeAndPrerender(prerenderContext, globalContext, concurrencyLimit, onComplete);
|
|
150
155
|
warnContradictoryNoPrerenderList(prerenderContext.prerenderedPageContexts, doNotPrerenderList);
|
|
151
|
-
await prerender404(prerenderContext, onComplete);
|
|
156
|
+
await prerender404(prerenderContext, globalContext, onComplete);
|
|
152
157
|
if (logLevel === 'info') {
|
|
153
158
|
console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
|
|
154
159
|
}
|
|
155
|
-
warnMissingPages(prerenderContext.prerenderedPageContexts, doNotPrerenderList, partial);
|
|
160
|
+
await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
|
|
156
161
|
const prerenderContextPublic = makePublic(prerenderContext);
|
|
157
162
|
return { viteConfig, prerenderContextPublic };
|
|
158
163
|
}
|
|
159
|
-
async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurrencyLimit) {
|
|
164
|
+
async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurrencyLimit, globalContext) {
|
|
160
165
|
// V1 design
|
|
161
166
|
pageConfigs.forEach((pageConfig) => {
|
|
162
167
|
const configValue = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigLocal)(pageConfig);
|
|
@@ -174,7 +179,6 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurr
|
|
|
174
179
|
});
|
|
175
180
|
// Old design
|
|
176
181
|
// TODO/v1-release: remove
|
|
177
|
-
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
178
182
|
await Promise.all(globalContext.pageFilesAll
|
|
179
183
|
.filter((p) => {
|
|
180
184
|
assertExportNames(p);
|
|
@@ -217,9 +221,8 @@ function assertExportNames(pageFile) {
|
|
|
217
221
|
const { exportNames, fileType } = pageFile;
|
|
218
222
|
(0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
|
|
219
223
|
}
|
|
220
|
-
async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimit, doNotPrerenderList) {
|
|
224
|
+
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
|
|
221
225
|
const onBeforePrerenderStartHooks = [];
|
|
222
|
-
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
223
226
|
// V1 design
|
|
224
227
|
await Promise.all(globalContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
|
|
225
228
|
const hookName = 'onBeforePrerenderStart';
|
|
@@ -267,7 +270,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimi
|
|
|
267
270
|
}
|
|
268
271
|
const prerenderResult = await (0, executeHook_js_1.executeHook)(() => hookFn(), { hookName, hookFilePath, hookTimeout }, null);
|
|
269
272
|
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
270
|
-
result.
|
|
273
|
+
await Promise.all(result.map(async ({ url, pageContext }) => {
|
|
271
274
|
{
|
|
272
275
|
const pageContextFound = prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, url));
|
|
273
276
|
if (pageContextFound) {
|
|
@@ -278,7 +281,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimi
|
|
|
278
281
|
(0, utils_js_1.assertUsage)(false, `URL ${picocolors_1.default.cyan(url)} provided ${providedTwice}. Make sure to provide the URL only once instead.`);
|
|
279
282
|
}
|
|
280
283
|
}
|
|
281
|
-
const pageContextNew = createPageContext(url, prerenderContext);
|
|
284
|
+
const pageContextNew = await createPageContext(url, prerenderContext, globalContext);
|
|
282
285
|
(0, utils_js_1.objectAssign)(pageContextNew, {
|
|
283
286
|
_providedByHook: {
|
|
284
287
|
hookFilePath,
|
|
@@ -292,12 +295,11 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimi
|
|
|
292
295
|
});
|
|
293
296
|
(0, utils_js_1.objectAssign)(pageContextNew, pageContext);
|
|
294
297
|
}
|
|
295
|
-
});
|
|
298
|
+
}));
|
|
296
299
|
})));
|
|
297
300
|
}
|
|
298
|
-
async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit) {
|
|
301
|
+
async function handlePagesWithStaticRoutes(prerenderContext, globalContext, doNotPrerenderList, concurrencyLimit) {
|
|
299
302
|
// Pre-render pages with a static route
|
|
300
|
-
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
301
303
|
await Promise.all(globalContext.pageRoutes.map((pageRoute) => concurrencyLimit(async () => {
|
|
302
304
|
const { pageId } = pageRoute;
|
|
303
305
|
if (doNotPrerenderList.find((p) => p.pageId === pageId)) {
|
|
@@ -323,7 +325,7 @@ async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList,
|
|
|
323
325
|
return;
|
|
324
326
|
}
|
|
325
327
|
const routeParams = {};
|
|
326
|
-
const pageContext = createPageContext(urlOriginal, prerenderContext);
|
|
328
|
+
const pageContext = await createPageContext(urlOriginal, prerenderContext, globalContext);
|
|
327
329
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
328
330
|
_providedByHook: null,
|
|
329
331
|
routeParams,
|
|
@@ -341,7 +343,7 @@ async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList,
|
|
|
341
343
|
prerenderContext.pageContexts.push(pageContext);
|
|
342
344
|
})));
|
|
343
345
|
}
|
|
344
|
-
function createPageContext(urlOriginal, prerenderContext) {
|
|
346
|
+
async function createPageContext(urlOriginal, prerenderContext, globalContext) {
|
|
345
347
|
const pageContext = {
|
|
346
348
|
_urlHandler: null,
|
|
347
349
|
_urlRewrite: null,
|
|
@@ -353,13 +355,12 @@ function createPageContext(urlOriginal, prerenderContext) {
|
|
|
353
355
|
};
|
|
354
356
|
(0, utils_js_1.objectAssign)(pageContextInit, prerenderContext.pageContextInit);
|
|
355
357
|
{
|
|
356
|
-
const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit);
|
|
358
|
+
const pageContextInitEnhanced = await (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, globalContext);
|
|
357
359
|
(0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
|
|
358
360
|
}
|
|
359
361
|
return pageContext;
|
|
360
362
|
}
|
|
361
|
-
async function callOnPrerenderStartHook(prerenderContext) {
|
|
362
|
-
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
363
|
+
async function callOnPrerenderStartHook(prerenderContext, globalContext) {
|
|
363
364
|
let onPrerenderStartHook;
|
|
364
365
|
// V1 design
|
|
365
366
|
if (globalContext.pageConfigs.length > 0) {
|
|
@@ -486,8 +487,7 @@ async function callOnPrerenderStartHook(prerenderContext) {
|
|
|
486
487
|
});
|
|
487
488
|
addPageContextComputedUrl(prerenderContext.pageContexts);
|
|
488
489
|
}
|
|
489
|
-
async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete) {
|
|
490
|
-
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
490
|
+
async function routeAndPrerender(prerenderContext, globalContext, concurrencyLimit, onComplete) {
|
|
491
491
|
(0, utils_js_1.assert)(globalContext.isPrerendering);
|
|
492
492
|
// Route all URLs
|
|
493
493
|
await Promise.all(prerenderContext.pageContexts.map((pageContext) => concurrencyLimit(async () => {
|
|
@@ -569,8 +569,7 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
|
|
|
569
569
|
(0, utils_js_1.assertWarning)(false, `The ${providedByHook.hookName}() hook defined by ${providedByHook.hookFilePath} returns the URL ${picocolors_1.default.cyan(urlOriginal)}, while ${setByConfigFile} sets the config ${picocolors_1.default.cyan(setByConfigName)} to ${picocolors_1.default.cyan(String(setByConfigValue))}. This is contradictory: either don't set the config ${picocolors_1.default.cyan(setByConfigName)} to ${picocolors_1.default.cyan(String(setByConfigValue))} or remove the URL ${picocolors_1.default.cyan(urlOriginal)} from the list of URLs to be pre-rendered.`, { onlyOnce: true });
|
|
570
570
|
});
|
|
571
571
|
}
|
|
572
|
-
function warnMissingPages(prerenderedPageContexts, doNotPrerenderList, partial) {
|
|
573
|
-
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
572
|
+
async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
|
|
574
573
|
const isV1 = globalContext.pageConfigs.length > 0;
|
|
575
574
|
const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
|
|
576
575
|
/* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
|
|
@@ -586,11 +585,11 @@ function warnMissingPages(prerenderedPageContexts, doNotPrerenderList, partial)
|
|
|
586
585
|
(0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while no ${hookName}() hook returned any URL matching the page's route. You need to use a ${hookName}() hook (https://vike.dev/${hookName}) providing a list of URLs for ${pageAt} that should be pre-rendered. If you don't want to pre-render ${pageAt} then use the option prerender.partial (https://vike.dev/prerender#partial) to suppress this warning.`, { onlyOnce: true });
|
|
587
586
|
});
|
|
588
587
|
}
|
|
589
|
-
async function prerender404(prerenderContext, onComplete) {
|
|
588
|
+
async function prerender404(prerenderContext, globalContext, onComplete) {
|
|
590
589
|
if (!Object.values(prerenderContext.prerenderedPageContexts).find(({ urlOriginal }) => urlOriginal === '/404')) {
|
|
591
590
|
let result;
|
|
592
591
|
try {
|
|
593
|
-
result = await (0, renderPageAlreadyRouted_js_1.prerender404Page)(prerenderContext.pageContextInit);
|
|
592
|
+
result = await (0, renderPageAlreadyRouted_js_1.prerender404Page)(prerenderContext.pageContextInit, globalContext);
|
|
594
593
|
}
|
|
595
594
|
catch (err) {
|
|
596
595
|
assertIsNotAbort(err, 'the 404 page');
|