vike 0.4.231-commit-e1c3295 → 0.4.232-commit-134207d
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/README.md +4 -2
- package/dist/cjs/__internal/index.js +2 -2
- package/dist/cjs/client/runtime-client-routing/globalContext.js +1 -1
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -2
- package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +2 -2
- package/dist/cjs/node/api/build.js +6 -2
- package/dist/cjs/node/api/dev.js +1 -1
- package/dist/cjs/node/api/prepareViteApiCall.js +8 -8
- package/dist/cjs/node/api/prerender.js +1 -1
- package/dist/cjs/node/api/preview.js +2 -2
- package/dist/cjs/node/cli/entry.js +1 -1
- package/dist/cjs/node/cli/parseCli.js +2 -2
- package/dist/cjs/node/client/router.js +1 -1
- package/dist/cjs/node/createPageRenderer.js +1 -1
- package/dist/cjs/node/prerender/context.js +1 -1
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -2
- package/dist/cjs/node/prerender/runPrerender.js +91 -46
- package/dist/cjs/node/prerender/runPrerenderEntry.js +1 -1
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/globalContext.js +22 -15
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +7 -7
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +1 -1
- package/dist/cjs/node/runtime/html/injectAssets/inferHtmlTags.js +1 -1
- package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +5 -5
- package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +3 -3
- package/dist/cjs/node/runtime/html/injectAssets.js +1 -1
- package/dist/cjs/node/runtime/html/renderHtml.js +8 -8
- package/dist/cjs/node/runtime/html/serializeContext.js +5 -5
- package/dist/cjs/node/runtime/html/stream.js +19 -19
- package/dist/cjs/node/runtime/index-deprecated.js +2 -2
- package/dist/cjs/node/runtime/index.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +4 -4
- package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +5 -6
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
- package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +1 -1
- package/dist/cjs/node/runtime/renderPage/execHookServer.js +1 -4
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +1 -1
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +3 -3
- package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
- package/dist/cjs/node/runtime/renderPage/isFontFallback.js +3 -3
- package/dist/cjs/node/runtime/renderPage/isNewError.js +2 -1
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +10 -10
- package/dist/cjs/node/runtime/renderPage/log404/index.js +4 -8
- package/dist/cjs/node/runtime/renderPage/logErrorHint/errors.js +2 -2
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +18 -18
- package/dist/cjs/node/runtime/renderPage/loggerProd.js +3 -3
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +22 -4
- package/dist/cjs/node/runtime/renderPage.js +17 -34
- package/dist/cjs/node/runtime/universal-middleware.js +2 -2
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +3 -3
- package/dist/cjs/node/shared/extractAssetsQuery.js +1 -1
- package/dist/cjs/node/shared/getVikeConfigError.js +22 -0
- package/dist/cjs/node/shared/resolveBase.js +1 -1
- package/dist/cjs/node/shared/utils.js +1 -0
- package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +2 -2
- package/dist/cjs/node/vite/index.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +30 -28
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +10 -10
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +10 -10
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +10 -10
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +12 -13
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +14 -12
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginBuild.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginCommon.js +14 -14
- package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginDev.js +8 -8
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +4 -4
- package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +6 -6
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginFileEnv.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginPreview.js +9 -9
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +6 -6
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.js +10 -10
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.js +11 -1
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +2 -2
- package/dist/cjs/node/vite/shared/addSsrMiddleware.js +3 -3
- package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
- package/dist/cjs/node/vite/shared/getFilePath.js +24 -24
- package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +4 -4
- package/dist/cjs/node/vite/shared/getOutDirs.js +2 -2
- package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +3 -3
- package/dist/cjs/node/vite/shared/isAsset.js +1 -1
- package/dist/cjs/node/vite/shared/isViteCliCall.js +1 -1
- package/dist/cjs/node/vite/shared/isViteServerBuild.js +2 -2
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +1 -1
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +1 -1
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +5 -5
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +3 -3
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +10 -10
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +2 -2
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +2 -2
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +2 -2
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +2 -2
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +1 -1
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +1 -1
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +3 -3
- package/dist/cjs/node/vite/shared/loggerNotProd.js +1 -1
- package/dist/cjs/node/vite/shared/resolveClientEntriesDev.js +2 -2
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +2 -2
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +50 -50
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +13 -13
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +14 -5
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +4 -4
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +5 -5
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +5 -5
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +25 -25
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +46 -46
- package/dist/cjs/node/vite/utils.js +2 -7
- package/dist/cjs/shared/assertHookReturnedObject.js +1 -1
- package/dist/cjs/shared/assertPageContextProvidedByUser.js +2 -2
- package/dist/cjs/shared/createGlobalContextShared.js +26 -18
- package/dist/cjs/shared/createPageContextShared.js +1 -1
- package/dist/cjs/shared/getPageContextRequestUrl.js +1 -1
- package/dist/cjs/shared/getPageContextUrlComputed.js +5 -5
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +3 -3
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +2 -2
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
- package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
- package/dist/cjs/shared/hooks/execHook.js +2 -2
- package/dist/cjs/shared/hooks/getHook.js +4 -4
- package/dist/cjs/shared/modifyUrl.js +1 -1
- package/dist/cjs/shared/page-configs/assertPlusFileExport.js +2 -2
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +4 -4
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +21 -21
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +3 -3
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +9 -9
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +3 -3
- package/dist/cjs/shared/route/abort.js +7 -7
- package/dist/cjs/shared/route/debug.js +1 -1
- package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +3 -3
- package/dist/cjs/shared/route/index.js +5 -5
- package/dist/cjs/shared/route/loadPageRoutes.js +8 -8
- package/dist/cjs/shared/route/resolvePrecedence.js +2 -2
- package/dist/cjs/shared/route/resolveRoute.js +1 -1
- package/dist/cjs/shared/route/resolveRouteFunction.js +2 -2
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +9 -9
- package/dist/cjs/utils/assertKeys.js +1 -1
- package/dist/cjs/utils/assertSetup.js +1 -1
- package/dist/cjs/utils/assertSingleInstance.js +5 -5
- package/dist/cjs/utils/catchInfiniteLoop.js +1 -1
- package/dist/cjs/utils/debug.js +1 -1
- package/dist/cjs/utils/findFile.js +5 -5
- package/dist/cjs/utils/findPackageJson.js +3 -3
- package/dist/cjs/utils/formatHintLog.js +1 -1
- package/dist/cjs/utils/freezePartial.js +1 -1
- package/dist/cjs/utils/genPromise.js +2 -2
- package/dist/cjs/utils/getMostSimilar.js +1 -1
- package/dist/cjs/utils/injectRollupInputs.js +2 -2
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/cjs/utils/objectAssignSafe.js +1 -1
- package/dist/cjs/utils/pLimit.js +4 -4
- package/dist/cjs/utils/parseNpmPackage.js +2 -2
- package/dist/cjs/utils/parseUrl.js +3 -3
- package/dist/cjs/utils/path.js +1 -1
- package/dist/cjs/utils/preservePropertyGetters.js +1 -1
- package/dist/cjs/utils/{removeFileExtention.js → removeFileExtension.js} +2 -2
- package/dist/cjs/utils/requireResolve.js +10 -10
- package/dist/cjs/utils/rollupSourceMap.js +2 -2
- package/dist/cjs/utils/stripAnsi.js +1 -1
- package/dist/cjs/utils/styleFileRE.js +1 -0
- package/dist/cjs/utils/trimWithAnsi.js +1 -1
- package/dist/esm/__internal/index.js +2 -2
- package/dist/esm/client/index.d.ts +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/client/node.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
- package/dist/esm/client/runtime-client-routing/getPageContext/removeBuiltInOverrides.js +1 -1
- package/dist/esm/client/runtime-client-routing/getPageContextCurrent.js +1 -1
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -3
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +5 -5
- package/dist/esm/client/runtime-client-routing/globalContext.js +1 -1
- package/dist/esm/client/runtime-client-routing/history.js +6 -6
- package/dist/esm/client/runtime-client-routing/initClientRouter.js +1 -1
- package/dist/esm/client/runtime-client-routing/initOnLinkClick.js +1 -1
- package/dist/esm/client/runtime-client-routing/initOnPopState.js +1 -1
- package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
- package/dist/esm/client/runtime-client-routing/navigate.js +1 -1
- package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +20 -20
- package/dist/esm/client/runtime-client-routing/setScrollPosition.js +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
- package/dist/esm/client/shared/createGetGlobalContextClient.js +3 -3
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +1 -1
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +3 -3
- package/dist/esm/node/api/build.js +6 -2
- package/dist/esm/node/api/dev.js +1 -1
- package/dist/esm/node/api/prepareViteApiCall.js +8 -8
- package/dist/esm/node/api/prerender.js +1 -1
- package/dist/esm/node/api/preview.js +2 -2
- package/dist/esm/node/cli/entry.js +1 -1
- package/dist/esm/node/cli/parseCli.js +2 -2
- package/dist/esm/node/client/router.js +1 -1
- package/dist/esm/node/createPageRenderer.js +1 -1
- package/dist/esm/node/prerender/context.d.ts +1 -1
- package/dist/esm/node/prerender/context.js +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +1 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +3 -2
- package/dist/esm/node/prerender/runPrerender.d.ts +9 -6
- package/dist/esm/node/prerender/runPrerender.js +90 -45
- package/dist/esm/node/prerender/runPrerenderEntry.js +1 -1
- package/dist/esm/node/prerender/utils.d.ts +1 -0
- package/dist/esm/node/prerender/utils.js +1 -0
- package/dist/esm/node/runtime/globalContext.js +25 -18
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +8 -8
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +5 -5
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +3 -3
- package/dist/esm/node/runtime/html/injectAssets.js +2 -2
- package/dist/esm/node/runtime/html/renderHtml.js +10 -10
- package/dist/esm/node/runtime/html/serializeContext.js +5 -5
- package/dist/esm/node/runtime/html/stream.d.ts +1 -1
- package/dist/esm/node/runtime/html/stream.js +21 -21
- package/dist/esm/node/runtime/index-deprecated.js +2 -2
- package/dist/esm/node/runtime/index.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +4 -4
- package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +5 -6
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
- package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/debugPageFiles.js +1 -1
- package/dist/esm/node/runtime/renderPage/execHookServer.js +2 -5
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +5 -5
- package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
- package/dist/esm/node/runtime/renderPage/isFontFallback.js +3 -3
- package/dist/esm/node/runtime/renderPage/isNewError.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/isNewError.js +2 -1
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +11 -11
- package/dist/esm/node/runtime/renderPage/log404/index.js +5 -9
- package/dist/esm/node/runtime/renderPage/logErrorHint/errors.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/logErrorHint/errors.js +1 -1
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +18 -18
- package/dist/esm/node/runtime/renderPage/loggerProd.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loggerProd.js +3 -3
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -2
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +24 -6
- package/dist/esm/node/runtime/renderPage.d.ts +0 -11
- package/dist/esm/node/runtime/renderPage.js +20 -37
- package/dist/esm/node/runtime/universal-middleware.js +2 -2
- package/dist/esm/node/runtime/utils.d.ts +1 -1
- package/dist/esm/node/runtime/utils.js +1 -1
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +3 -3
- package/dist/esm/node/shared/extractAssetsQuery.js +1 -1
- package/dist/esm/node/shared/getVikeConfigError.d.ts +13 -0
- package/dist/esm/node/shared/getVikeConfigError.js +20 -0
- package/dist/esm/node/shared/resolveBase.js +1 -1
- package/dist/esm/node/shared/utils.d.ts +1 -0
- package/dist/esm/node/shared/utils.js +1 -0
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +2 -2
- package/dist/esm/node/vite/index.js +2 -2
- package/dist/esm/node/vite/plugins/pluginBaseUrls.js +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +3 -2
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +14 -12
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +10 -10
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +10 -10
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +12 -12
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.d.ts +1 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +11 -12
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +11 -9
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild.js +1 -1
- package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +2 -2
- package/dist/esm/node/vite/plugins/pluginCommon.js +14 -14
- package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +1 -1
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +5 -5
- package/dist/esm/node/vite/plugins/pluginDev.js +8 -8
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +5 -5
- package/dist/esm/node/vite/plugins/pluginExtractAssets.js +8 -8
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +3 -3
- package/dist/esm/node/vite/plugins/pluginFileEnv.js +4 -4
- package/dist/esm/node/vite/plugins/pluginPreview.js +5 -5
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +3 -3
- package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +7 -7
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.js +11 -11
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.js +13 -3
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +3 -3
- package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +1 -1
- package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +2 -2
- package/dist/esm/node/vite/shared/addSsrMiddleware.js +3 -3
- package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
- package/dist/esm/node/vite/shared/getFilePath.d.ts +5 -5
- package/dist/esm/node/vite/shared/getFilePath.js +22 -22
- package/dist/esm/node/vite/shared/getHttpRequestAsyncStore.js +4 -4
- package/dist/esm/node/vite/shared/getOutDirs.js +2 -2
- package/dist/esm/node/vite/shared/getViteConfigRuntime.js +3 -3
- package/dist/esm/node/vite/shared/isAsset.js +1 -1
- package/dist/esm/node/vite/shared/isViteCliCall.js +1 -1
- package/dist/esm/node/vite/shared/isViteServerBuild.js +2 -2
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +1 -1
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +1 -1
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +5 -5
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +3 -3
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +10 -10
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +2 -2
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +2 -2
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +2 -2
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +2 -2
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +1 -1
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +1 -1
- package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +4 -4
- package/dist/esm/node/vite/shared/loggerNotProd.js +3 -3
- package/dist/esm/node/vite/shared/resolveClientEntriesDev.js +3 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +50 -50
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +10 -10
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +14 -5
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +4 -4
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +5 -5
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +6 -6
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +14 -14
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +2 -2
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +52 -52
- package/dist/esm/node/vite/utils.d.ts +0 -6
- package/dist/esm/node/vite/utils.js +2 -7
- package/dist/esm/shared/assertHookReturnedObject.js +1 -1
- package/dist/esm/shared/assertPageContextProvidedByUser.d.ts +1 -1
- package/dist/esm/shared/assertPageContextProvidedByUser.js +2 -2
- package/dist/esm/shared/createGlobalContextShared.d.ts +2 -0
- package/dist/esm/shared/createGlobalContextShared.js +28 -20
- package/dist/esm/shared/createPageContextShared.js +1 -1
- package/dist/esm/shared/getPageContextRequestUrl.js +1 -1
- package/dist/esm/shared/getPageContextUrlComputed.js +5 -5
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.d.ts +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +3 -3
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.d.ts +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +3 -3
- package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +2 -2
- package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
- package/dist/esm/shared/getProxyForPublicUsage.js +2 -2
- package/dist/esm/shared/hooks/execHook.js +3 -3
- package/dist/esm/shared/hooks/getHook.js +4 -4
- package/dist/esm/shared/modifyUrl.js +1 -1
- package/dist/esm/shared/modifyUrlSameOrigin.js +1 -1
- package/dist/esm/shared/page-configs/assertPlusFileExport.js +2 -2
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +4 -4
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +2 -2
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +22 -22
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +3 -3
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +11 -11
- package/dist/esm/shared/preparePageContextForPublicUsage.js +4 -4
- package/dist/esm/shared/route/abort.js +8 -8
- package/dist/esm/shared/route/debug.js +1 -1
- package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +5 -5
- package/dist/esm/shared/route/index.js +6 -6
- package/dist/esm/shared/route/loadPageRoutes.js +8 -8
- package/dist/esm/shared/route/resolvePrecedence.d.ts +2 -2
- package/dist/esm/shared/route/resolvePrecedence.js +2 -2
- package/dist/esm/shared/route/resolveRoute.js +1 -1
- package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/types/Config.d.ts +6 -0
- package/dist/esm/types/FilePath.d.ts +1 -1
- package/dist/esm/types/PageConfig.d.ts +1 -1
- package/dist/esm/types/PageContext.d.ts +2 -2
- package/dist/esm/types/index-dreprecated.d.ts +1 -1
- package/dist/esm/types/index.d.ts +3 -3
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +9 -9
- package/dist/esm/utils/assertKeys.js +1 -1
- package/dist/esm/utils/assertSetup.js +1 -1
- package/dist/esm/utils/assertSingleInstance.js +5 -5
- package/dist/esm/utils/catchInfiniteLoop.js +1 -1
- package/dist/esm/utils/debug.js +1 -1
- package/dist/esm/utils/findFile.js +2 -2
- package/dist/esm/utils/findPackageJson.js +2 -2
- package/dist/esm/utils/formatHintLog.js +1 -1
- package/dist/esm/utils/freezePartial.js +1 -1
- package/dist/esm/utils/genPromise.d.ts +1 -1
- package/dist/esm/utils/genPromise.js +2 -2
- package/dist/esm/utils/getMostSimilar.js +1 -1
- package/dist/esm/utils/injectRollupInputs.js +2 -2
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/esm/utils/objectAssignSafe.js +1 -1
- package/dist/esm/utils/pLimit.js +4 -4
- package/dist/esm/utils/parseNpmPackage.js +2 -2
- package/dist/esm/utils/parseUrl.js +3 -3
- package/dist/esm/utils/path.js +1 -1
- package/dist/esm/utils/preservePropertyGetters.js +1 -1
- package/dist/esm/utils/removeFileExtension.d.ts +1 -0
- package/dist/esm/utils/{removeFileExtention.js → removeFileExtension.js} +1 -1
- package/dist/esm/utils/requireResolve.d.ts +3 -3
- package/dist/esm/utils/requireResolve.js +10 -10
- package/dist/esm/utils/rollupSourceMap.js +2 -2
- package/dist/esm/utils/stripAnsi.js +1 -1
- package/dist/esm/utils/styleFileRE.js +1 -0
- package/dist/esm/utils/trimWithAnsi.js +1 -1
- package/package.json +2 -2
- package/dist/esm/utils/removeFileExtention.d.ts +0 -1
package/README.md
CHANGED
|
@@ -20,12 +20,12 @@ async function getPagesAndRoutes() {
|
|
|
20
20
|
const { globalContext } = await (0, globalContext_js_2.getGlobalContextServerInternal)();
|
|
21
21
|
const {
|
|
22
22
|
//
|
|
23
|
-
_pageRoutes: pageRoutes, _pageFilesAll: pageFilesAll, _pageConfigs: pageConfigs, _allPageIds: allPageIds } = globalContext;
|
|
23
|
+
_pageRoutes: pageRoutes, _pageFilesAll: pageFilesAll, _pageConfigs: pageConfigs, _allPageIds: allPageIds, } = globalContext;
|
|
24
24
|
return {
|
|
25
25
|
pageRoutes,
|
|
26
26
|
pageFilesAll,
|
|
27
27
|
pageConfigs,
|
|
28
|
-
allPageIds
|
|
28
|
+
allPageIds,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
async function route(pageContext) {
|
|
@@ -44,6 +44,6 @@ async function addGlobalContext(globalContext) {
|
|
|
44
44
|
const { pageRoutes, onBeforeRouteHook } = await (0, loadPageRoutes_js_1.loadPageRoutes)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
|
|
45
45
|
return {
|
|
46
46
|
_pageRoutes: pageRoutes,
|
|
47
|
-
_onBeforeRouteHook: onBeforeRouteHook
|
|
47
|
+
_onBeforeRouteHook: onBeforeRouteHook,
|
|
48
48
|
};
|
|
49
49
|
}
|
|
@@ -10,7 +10,7 @@ const globalObject = (0, utils_js_1.getGlobalObject)('createGetGlobalContextClie
|
|
|
10
10
|
const { promise: globalContextPromise, resolve: globalContextPromiseResolve } = (0, utils_js_1.genPromise)();
|
|
11
11
|
return {
|
|
12
12
|
globalContextPromise,
|
|
13
|
-
globalContextPromiseResolve
|
|
13
|
+
globalContextPromiseResolve,
|
|
14
14
|
};
|
|
15
15
|
})());
|
|
16
16
|
function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGlobalContext) {
|
|
@@ -34,7 +34,7 @@ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGl
|
|
|
34
34
|
*
|
|
35
35
|
* We recommend using `import.meta.env.SSR` instead, see https://vike.dev/globalContext
|
|
36
36
|
*/
|
|
37
|
-
isClientSide: true
|
|
37
|
+
isClientSide: true,
|
|
38
38
|
};
|
|
39
39
|
(0, utils_js_1.objectAssign)(globalContextAddendum, (0, getJsonSerializedInHtml_js_1.getGlobalContextSerializedInHtml)());
|
|
40
40
|
(0, utils_js_1.objectAssign)(globalContextAddendum, await addGlobalContext?.(globalContext));
|
|
@@ -22,7 +22,7 @@ function preparePageContextForPublicUsageClientMinimal(pageContext) {
|
|
|
22
22
|
const pageContextPublic = (0, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage)(pageContext);
|
|
23
23
|
return pageContextPublic;
|
|
24
24
|
}
|
|
25
|
-
// With Vue +
|
|
25
|
+
// With Vue + Client Routing, the `pageContext` is made reactive:
|
|
26
26
|
// ```js
|
|
27
27
|
// import { reactive } from 'vue'
|
|
28
28
|
// // See /examples/vue-full/renderer/createVueApp.ts
|
|
@@ -31,7 +31,7 @@ function preparePageContextForPublicUsageClientMinimal(pageContext) {
|
|
|
31
31
|
function supportVueReactiviy(pageContext) {
|
|
32
32
|
resolveGetters(pageContext);
|
|
33
33
|
}
|
|
34
|
-
// Remove
|
|
34
|
+
// Remove property descriptor getters because they break Vue's reactivity.
|
|
35
35
|
// E.g. resolve the `pageContext.urlPathname` getter.
|
|
36
36
|
function resolveGetters(pageContext) {
|
|
37
37
|
Object.entries(pageContext).forEach(([key, val]) => {
|
|
@@ -34,9 +34,13 @@ async function build(options = {}) {
|
|
|
34
34
|
// > Rationale: https://github.com/vikejs/vike/issues/2123
|
|
35
35
|
await (0, vite_1.build)(viteConfigFromUserEnhanced);
|
|
36
36
|
// After pre-rendering, when using the Vike CLI, the process is forcefully exited at the end of the buildVite() call above.
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
if (
|
|
38
|
+
// When calling Vike's prerender() API pre-rendering is run without force exit
|
|
39
|
+
![false, 'prerender()'].includes((0, context_js_2.wasPrerenderRun)()) &&
|
|
40
|
+
// When calling Vike's build() API pre-rendering is auto run without force exit
|
|
41
|
+
(0, context_js_1.isVikeCli)()) {
|
|
39
42
|
(0, utils_js_1.assert)(false);
|
|
43
|
+
}
|
|
40
44
|
}
|
|
41
45
|
return {
|
|
42
46
|
/* We don't return `viteConfig` because `viteConfigFromUserEnhanced` is `InlineConfig` not `ResolvedConfig`
|
package/dist/cjs/node/api/dev.js
CHANGED
|
@@ -43,7 +43,7 @@ exports.normalizeViteRoot = normalizeViteRoot;
|
|
|
43
43
|
const vite_1 = require("vite");
|
|
44
44
|
const context_js_1 = require("./context.js");
|
|
45
45
|
const resolveVikeConfigInternal_js_1 = require("../vite/shared/resolveVikeConfigInternal.js");
|
|
46
|
-
const
|
|
46
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
47
47
|
const utils_js_1 = require("./utils.js");
|
|
48
48
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
49
49
|
const globalContext_js_1 = require("../runtime/globalContext.js");
|
|
@@ -65,7 +65,7 @@ async function resolveConfigs(viteConfigFromUserApiOptions, operation) {
|
|
|
65
65
|
(0, resolveVikeConfigInternal_js_1.setVikeConfigContext)({
|
|
66
66
|
userRootDir: viteInfo.root,
|
|
67
67
|
isDev: operation === 'dev',
|
|
68
|
-
vikeVitePluginOptions: viteInfo.vikeVitePluginOptions
|
|
68
|
+
vikeVitePluginOptions: viteInfo.vikeVitePluginOptions,
|
|
69
69
|
});
|
|
70
70
|
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
71
71
|
const viteConfigFromUserEnhanced = applyVikeViteConfig(viteInfo.viteConfigFromUserEnhanced, vikeConfig);
|
|
@@ -73,7 +73,7 @@ async function resolveConfigs(viteConfigFromUserApiOptions, operation) {
|
|
|
73
73
|
return {
|
|
74
74
|
vikeConfig,
|
|
75
75
|
viteConfigResolved, // ONLY USE if strictly necessary. (We plan to remove assertViteRoot2() as explained in the comments of that function.)
|
|
76
|
-
viteConfigFromUserEnhanced
|
|
76
|
+
viteConfigFromUserEnhanced,
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
// Apply +vite
|
|
@@ -98,10 +98,10 @@ async function getViteRoot(operation) {
|
|
|
98
98
|
async function getViteInfo(viteConfigFromUserApiOptions, operation) {
|
|
99
99
|
let viteConfigFromUserEnhanced = viteConfigFromUserApiOptions;
|
|
100
100
|
// Precedence:
|
|
101
|
-
// 1) viteConfigFromUserEnvVar (highest
|
|
101
|
+
// 1) viteConfigFromUserEnvVar (highest precedence)
|
|
102
102
|
// 2) viteConfigFromUserVikeConfig
|
|
103
103
|
// 2) viteConfigFromUserApiOptions
|
|
104
|
-
// 3) viteConfigFromUserViteFile (lowest
|
|
104
|
+
// 3) viteConfigFromUserViteFile (lowest precedence)
|
|
105
105
|
// Resolve Vike's +mode setting
|
|
106
106
|
{
|
|
107
107
|
const viteConfigFromUserVikeConfig = (0, utils_js_1.pick)((0, resolveVikeConfigInternal_js_1.getVikeConfigFromCliOrEnv)().vikeConfigFromCliOrEnv, ['mode']);
|
|
@@ -135,7 +135,7 @@ async function getViteInfo(viteConfigFromUserApiOptions, operation) {
|
|
|
135
135
|
const { plugin: vikePlugin } = await Promise.resolve().then(() => __importStar(require('../vite/index.js')));
|
|
136
136
|
viteConfigFromUserEnhanced = {
|
|
137
137
|
...viteConfigFromUserEnhanced,
|
|
138
|
-
plugins: [...(viteConfigFromUserEnhanced?.plugins ?? []), vikePlugin()]
|
|
138
|
+
plugins: [...(viteConfigFromUserEnhanced?.plugins ?? []), vikePlugin()],
|
|
139
139
|
};
|
|
140
140
|
const res = findVikeVitePlugin(viteConfigFromUserEnhanced);
|
|
141
141
|
(0, utils_js_1.assert)(res);
|
|
@@ -168,7 +168,7 @@ async function loadViteConfigFile(viteConfigFromUserApiOptions, operation) {
|
|
|
168
168
|
mode,
|
|
169
169
|
command,
|
|
170
170
|
isSsrBuild: command === 'build' && !!config.build?.ssr,
|
|
171
|
-
isPreview
|
|
171
|
+
isPreview,
|
|
172
172
|
};
|
|
173
173
|
let { configFile } = config;
|
|
174
174
|
if (configFile !== false) {
|
|
@@ -190,7 +190,7 @@ function normalizeViteRoot(root) {
|
|
|
190
190
|
// https://github.com/vitejs/vite/blob/4f5845a3182fc950eb9cd76d7161698383113b18/packages/vite/src/node/config.ts#L1063
|
|
191
191
|
return (0, utils_js_1.toPosixPath)(
|
|
192
192
|
// Equivalent to `path.resolve(process.cwd(), root)`
|
|
193
|
-
|
|
193
|
+
node_path_1.default.resolve(root));
|
|
194
194
|
}
|
|
195
195
|
const errMsg = `A Vite plugin is modifying Vite's setting ${picocolors_1.default.cyan('root')} which is forbidden`;
|
|
196
196
|
async function assertViteRoot2(root, viteConfigFromUserEnhanced, operation) {
|
|
@@ -26,14 +26,14 @@ async function preview(options = {}) {
|
|
|
26
26
|
const outServerIndexRelative = node_path_1.default.relative(viteConfigResolved.root, outServerIndex);
|
|
27
27
|
(0, utils_js_1.assertWarning)(false, `Never run ${picocolors_1.default.cyan('$ vike preview')} in production, run ${picocolors_1.default.cyan(`$ node ${outServerIndexRelative}`)} instead (or Bun/Deno).`, { onlyOnce: true });
|
|
28
28
|
return {
|
|
29
|
-
viteConfig: viteConfigResolved
|
|
29
|
+
viteConfig: viteConfigResolved,
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
33
33
|
const server = await (0, vite_1.preview)(viteConfigFromUserEnhanced);
|
|
34
34
|
return {
|
|
35
35
|
viteServer: server,
|
|
36
|
-
viteConfig: server.config
|
|
36
|
+
viteConfig: server.config,
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -68,7 +68,7 @@ async function cmdDev() {
|
|
|
68
68
|
const startupDurationString = picocolors_1.default.dim(`ready in ${picocolors_1.default.reset(picocolors_1.default.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
|
|
69
69
|
const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
|
|
70
70
|
info(` ${picocolors_1.default.yellow(`${picocolors_1.default.bold('Vike')} v${utils_js_1.PROJECT_VERSION}`)} ${startupDurationString}\n`, {
|
|
71
|
-
clear: !hasExistingLogs
|
|
71
|
+
clear: !hasExistingLogs,
|
|
72
72
|
});
|
|
73
73
|
viteServer.printUrls();
|
|
74
74
|
}
|
|
@@ -11,7 +11,7 @@ const commands = [
|
|
|
11
11
|
{ name: 'dev', desc: 'Start development server' },
|
|
12
12
|
{ name: 'build', desc: 'Build for production' },
|
|
13
13
|
{ name: 'preview', desc: 'Start preview server using production build (only works for SSG apps)' },
|
|
14
|
-
{ name: 'prerender', desc: 'Pre-render pages (only needed when prerender.disableAutoRun is true)' }
|
|
14
|
+
{ name: 'prerender', desc: 'Pre-render pages (only needed when prerender.disableAutoRun is true)' },
|
|
15
15
|
];
|
|
16
16
|
function parseCli() {
|
|
17
17
|
const command = getCommand();
|
|
@@ -72,7 +72,7 @@ function showHelp() {
|
|
|
72
72
|
`More Vike settings can be passed over the ${picocolors_1.default.cyan('VIKE_CONFIG')} environment variable or as ${picocolors_1.default.cyan('CLI options')}.`,
|
|
73
73
|
`More Vite settings can be passed over the ${picocolors_1.default.cyan('VITE_CONFIG')} environment variable.`,
|
|
74
74
|
``,
|
|
75
|
-
`See ${picocolors_1.default.underline('https://vike.dev/cli')} for more information
|
|
75
|
+
`See ${picocolors_1.default.underline('https://vike.dev/cli')} for more information.`,
|
|
76
76
|
].join('\n'));
|
|
77
77
|
process.exit(1);
|
|
78
78
|
}
|
|
@@ -18,7 +18,7 @@ function showWarnings(options) {
|
|
|
18
18
|
viteDevServer !== undefined && 'viteDevServer',
|
|
19
19
|
root !== undefined && 'root',
|
|
20
20
|
outDir !== undefined && 'outDir',
|
|
21
|
-
isProduction !== undefined && 'isProduction'
|
|
21
|
+
isProduction !== undefined && 'isProduction',
|
|
22
22
|
].filter(notFalse);
|
|
23
23
|
(0, utils_js_1.assertWarning)(opts.length === 0, `The options ${str(opts)} you passed to \`createPageRenderer()\` have no effect anymore: they are now automatically determined.`, { onlyOnce: true });
|
|
24
24
|
}
|
|
@@ -19,7 +19,7 @@ function temp_disablePrerenderAutoRun() {
|
|
|
19
19
|
globalObject.isDisabled = true;
|
|
20
20
|
}
|
|
21
21
|
function wasPrerenderRun() {
|
|
22
|
-
return globalObject.wasPrerenderRun;
|
|
22
|
+
return globalObject.wasPrerenderRun || false;
|
|
23
23
|
}
|
|
24
24
|
function setWasPrerenderRun(trigger) {
|
|
25
25
|
globalObject.wasPrerenderRun = trigger;
|
|
@@ -11,10 +11,11 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
|
|
|
11
11
|
const prerenderSettings = prerenderConfigs.filter(isObject2);
|
|
12
12
|
const prerenderConfigGlobal = {
|
|
13
13
|
partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
|
|
14
|
+
redirects: pickFirst(prerenderSettings.map((c) => c.redirects)) ?? null,
|
|
14
15
|
noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? null,
|
|
15
16
|
keepDistServer: pickFirst(prerenderSettings.map((c) => c.keepDistServer)) ?? false,
|
|
16
17
|
parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
|
|
17
|
-
disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
|
|
18
|
+
disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false,
|
|
18
19
|
};
|
|
19
20
|
let defaultLocalValue = false;
|
|
20
21
|
{
|
|
@@ -36,7 +37,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
|
|
|
36
37
|
isPrerenderingEnabledForAllPages: vikeConfig._pageConfigs.length > 0 &&
|
|
37
38
|
vikeConfig._pageConfigs.every((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue),
|
|
38
39
|
isPrerenderingEnabled: vikeConfig._pageConfigs.length > 0 &&
|
|
39
|
-
vikeConfig._pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue)
|
|
40
|
+
vikeConfig._pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue),
|
|
40
41
|
});
|
|
41
42
|
// TODO/next-major remove
|
|
42
43
|
if (vikeConfig._pageConfigs.length === 0 && defaultLocalValue)
|
|
@@ -40,13 +40,13 @@ exports.runPrerender = runPrerender;
|
|
|
40
40
|
// Failed attempt to run this file (i.e. pre-rendering) in a separate process: https://github.com/vikejs/vike/commit/48feda87012115b32a5c9701da354cb8c138dfd2
|
|
41
41
|
// - The issue is that prerenderContext needs to be serialized for being able to pass it from the child process to the parent process.
|
|
42
42
|
// - The prerenderContext is used by vike-vercel
|
|
43
|
-
const
|
|
43
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
44
44
|
const index_js_1 = require("../../shared/route/index.js");
|
|
45
45
|
const utils_js_1 = require("./utils.js");
|
|
46
46
|
const renderPageAlreadyRouted_js_1 = require("../runtime/renderPage/renderPageAlreadyRouted.js");
|
|
47
47
|
const createPageContextServerSide_js_1 = require("../runtime/renderPage/createPageContextServerSide.js");
|
|
48
48
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
49
|
-
const
|
|
49
|
+
const node_os_1 = require("node:os");
|
|
50
50
|
const globalContext_js_1 = require("../runtime/globalContext.js");
|
|
51
51
|
const vite_1 = require("vite");
|
|
52
52
|
const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
|
|
@@ -66,6 +66,7 @@ const resolvePrerenderConfig_js_1 = require("./resolvePrerenderConfig.js");
|
|
|
66
66
|
const getOutDirs_js_1 = require("../vite/shared/getOutDirs.js");
|
|
67
67
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
68
68
|
const getProxyForPublicUsage_js_1 = require("../../shared/getProxyForPublicUsage.js");
|
|
69
|
+
const resolveRedirects_js_1 = require("../runtime/renderPage/resolveRedirects.js");
|
|
69
70
|
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
70
71
|
async function runPrerender(options = {}, trigger) {
|
|
71
72
|
(0, context_js_1.setWasPrerenderRun)(trigger);
|
|
@@ -80,8 +81,7 @@ async function runPrerender(options = {}, trigger) {
|
|
|
80
81
|
await disableReactStreaming();
|
|
81
82
|
const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
|
|
82
83
|
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
83
|
-
const {
|
|
84
|
-
const { root } = viteConfig;
|
|
84
|
+
const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
|
|
85
85
|
const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
|
|
86
86
|
const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
|
|
87
87
|
if (!isPrerenderingEnabled) {
|
|
@@ -96,7 +96,7 @@ async function runPrerender(options = {}, trigger) {
|
|
|
96
96
|
*/
|
|
97
97
|
return { viteConfig };
|
|
98
98
|
}
|
|
99
|
-
const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0,
|
|
99
|
+
const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, node_os_1.cpus)().length : parallel);
|
|
100
100
|
await (0, globalContext_js_1.initGlobalContext_runPrerender)();
|
|
101
101
|
const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
|
|
102
102
|
globalContext._pageFilesAll.forEach(assertExportNames);
|
|
@@ -105,7 +105,7 @@ async function runPrerender(options = {}, trigger) {
|
|
|
105
105
|
output: [],
|
|
106
106
|
_noExtraDir: noExtraDir,
|
|
107
107
|
_pageContextInit: options.pageContextInit ?? null,
|
|
108
|
-
_prerenderedPageContexts: {}
|
|
108
|
+
_prerenderedPageContexts: {},
|
|
109
109
|
};
|
|
110
110
|
const doNotPrerenderList = [];
|
|
111
111
|
await collectDoNoPrerenderList(vikeConfig._pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
|
|
@@ -126,12 +126,19 @@ async function runPrerender(options = {}, trigger) {
|
|
|
126
126
|
const onComplete = async (htmlFile) => {
|
|
127
127
|
prerenderedCount++;
|
|
128
128
|
const { pageId } = htmlFile.pageContext;
|
|
129
|
-
(0, utils_js_1.assert)(pageId);
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
(0, utils_js_1.assert)((typeof pageId === 'string' && pageId) || pageId === null);
|
|
130
|
+
if (pageId) {
|
|
131
|
+
prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
|
|
132
|
+
}
|
|
133
|
+
await writeFiles(htmlFile, viteConfig, options.onPagePrerender, prerenderContext, logLevel);
|
|
132
134
|
};
|
|
133
135
|
await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
|
|
134
136
|
warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
|
|
137
|
+
const { redirects, isPrerenderingEnabledForAllPages } = prerenderConfigGlobal;
|
|
138
|
+
if (redirects !== null ? redirects : isPrerenderingEnabledForAllPages) {
|
|
139
|
+
const showWarningUponDynamicRedirects = !prerenderConfigGlobal.partial;
|
|
140
|
+
await prerenderRedirects(globalContext, onComplete, showWarningUponDynamicRedirects);
|
|
141
|
+
}
|
|
135
142
|
if (logLevel === 'info') {
|
|
136
143
|
console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
|
|
137
144
|
}
|
|
@@ -214,7 +221,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
214
221
|
hookName: 'onBeforePrerenderStart',
|
|
215
222
|
hookFilePath,
|
|
216
223
|
pageId: pageConfig.pageId,
|
|
217
|
-
hookTimeout
|
|
224
|
+
hookTimeout,
|
|
218
225
|
});
|
|
219
226
|
})));
|
|
220
227
|
// 0.4 design
|
|
@@ -239,7 +246,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
239
246
|
hookName: 'prerender',
|
|
240
247
|
hookFilePath,
|
|
241
248
|
pageId: p.pageId,
|
|
242
|
-
hookTimeout: (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerenderStart')
|
|
249
|
+
hookTimeout: (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerenderStart'),
|
|
243
250
|
});
|
|
244
251
|
})));
|
|
245
252
|
await Promise.all(onBeforePrerenderStartHooks.map(({ pageId, ...hook }) => concurrencyLimit(async () => {
|
|
@@ -304,7 +311,7 @@ function getUrlList404(globalContext) {
|
|
|
304
311
|
urlList.push({
|
|
305
312
|
// A URL is required for `viteDevServer.transformIndexHtml(url,html)`
|
|
306
313
|
urlOriginal: '/404',
|
|
307
|
-
pageId: errorPageId
|
|
314
|
+
pageId: errorPageId,
|
|
308
315
|
});
|
|
309
316
|
}
|
|
310
317
|
return urlList;
|
|
@@ -322,10 +329,10 @@ async function createPageContexts(urlList, prerenderContext, globalContext, conc
|
|
|
322
329
|
async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
|
|
323
330
|
const pageContextInit = {
|
|
324
331
|
urlOriginal,
|
|
325
|
-
...prerenderContext._pageContextInit
|
|
332
|
+
...prerenderContext._pageContextInit,
|
|
326
333
|
};
|
|
327
334
|
const pageContext = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
|
|
328
|
-
isPrerendering: true
|
|
335
|
+
isPrerendering: true,
|
|
329
336
|
});
|
|
330
337
|
(0, utils_js_1.assert)(pageContext.isPrerendering === true);
|
|
331
338
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
@@ -336,7 +343,7 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
|
|
|
336
343
|
_prerenderContext: prerenderContext,
|
|
337
344
|
_providedByHook: providedByHook,
|
|
338
345
|
_urlOriginalModifiedByHook: null,
|
|
339
|
-
is404
|
|
346
|
+
is404,
|
|
340
347
|
});
|
|
341
348
|
if (!is404) {
|
|
342
349
|
const pageContextFromRoute = await (0, index_js_1.route)(pageContext);
|
|
@@ -350,7 +357,7 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
|
|
|
350
357
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
351
358
|
pageId,
|
|
352
359
|
_debugRouteMatches: [],
|
|
353
|
-
routeParams: {}
|
|
360
|
+
routeParams: {},
|
|
354
361
|
});
|
|
355
362
|
}
|
|
356
363
|
(0, utils_js_1.objectAssign)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSide)(pageContext));
|
|
@@ -393,7 +400,7 @@ function assertRouteMatch(pageContextFromRoute, pageContext) {
|
|
|
393
400
|
(0, utils_js_1.assertUsage)(false, `The ${hookName}() hook defined by ${hookFilePath} returns a URL ${picocolors_1.default.cyan(urlOriginal)} that ${noRouteMatch_js_1.noRouteMatch}. Make sure that the URLs returned by ${hookName}() always match the route of a page.`);
|
|
394
401
|
}
|
|
395
402
|
else {
|
|
396
|
-
// `prerenderHookFile` is `null` when the URL was deduced by the
|
|
403
|
+
// `prerenderHookFile` is `null` when the URL was deduced by the Filesystem Routing of `.page.js` files. The `onBeforeRoute()` can override Filesystem Routing; it is therefore expected that the deduced URL may not match any page.
|
|
397
404
|
(0, utils_js_1.assert)(pageContextFromRoute._routingProvidedByOnBeforeRouteHook);
|
|
398
405
|
// Abort since the URL doesn't correspond to any page
|
|
399
406
|
return;
|
|
@@ -410,7 +417,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
410
417
|
onPrerenderStartHook = {
|
|
411
418
|
...hook,
|
|
412
419
|
// Make TypeScript happy
|
|
413
|
-
hookName
|
|
420
|
+
hookName,
|
|
414
421
|
};
|
|
415
422
|
}
|
|
416
423
|
}
|
|
@@ -423,7 +430,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
423
430
|
if (!p.exportNames?.includes('onBeforePrerender'))
|
|
424
431
|
return false;
|
|
425
432
|
(0, utils_js_1.assertUsage)(p.fileType !== '.page.client', `${p.filePath} (which is a \`.page.client.js\` file) has \`export { onBeforePrerender }\` but it is only allowed in \`.page.server.js\` or \`.page.js\` files`);
|
|
426
|
-
(0, utils_js_1.assertUsage)(p.isDefaultPageFile, `${p.filePath} has \`export { onBeforePrerender }\` but it is only allowed in \`
|
|
433
|
+
(0, utils_js_1.assertUsage)(p.isDefaultPageFile, `${p.filePath} has \`export { onBeforePrerender }\` but it is only allowed in \`_default.page.\` files`);
|
|
427
434
|
return true;
|
|
428
435
|
});
|
|
429
436
|
if (pageFilesWithOnBeforePrerenderHook.length === 0) {
|
|
@@ -444,7 +451,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
444
451
|
hookFn: hook.onBeforePrerender,
|
|
445
452
|
hookFilePath: hook.hookFilePath,
|
|
446
453
|
hookName: 'onBeforePrerender',
|
|
447
|
-
hookTimeout
|
|
454
|
+
hookTimeout,
|
|
448
455
|
};
|
|
449
456
|
}
|
|
450
457
|
if (!onPrerenderStartHook) {
|
|
@@ -462,7 +469,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
462
469
|
return pageContext.urlOriginal;
|
|
463
470
|
},
|
|
464
471
|
enumerable: false,
|
|
465
|
-
configurable: true
|
|
472
|
+
configurable: true,
|
|
466
473
|
});
|
|
467
474
|
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'url'));
|
|
468
475
|
(0, utils_js_1.assert)(pageContext.urlOriginal);
|
|
@@ -493,8 +500,8 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
493
500
|
(0, utils_js_1.assertWarning)(false, `${errPrefix} returns ${picocolors_1.default.cyan('{ globalContext: { prerenderPageContexts } }')} but the return value has been renamed to ${picocolors_1.default.cyan('{ prerenderContext: { pageContexts } }')}, see ${docLink}`, { onlyOnce: true });
|
|
494
501
|
result = {
|
|
495
502
|
prerenderContext: {
|
|
496
|
-
pageContexts: result.globalContext.prerenderPageContexts
|
|
497
|
-
}
|
|
503
|
+
pageContexts: result.globalContext.prerenderPageContexts,
|
|
504
|
+
},
|
|
498
505
|
};
|
|
499
506
|
}
|
|
500
507
|
(0, utils_js_1.assertUsage)((0, utils_js_1.isObjectWithKeys)(result, ['prerenderContext']) &&
|
|
@@ -520,7 +527,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
520
527
|
if (pageContext.urlOriginal !== pageContext._urlOriginalBeforeHook && !pageContext.is404) {
|
|
521
528
|
pageContext._urlOriginalModifiedByHook = {
|
|
522
529
|
hookFilePath,
|
|
523
|
-
hookName
|
|
530
|
+
hookName,
|
|
524
531
|
};
|
|
525
532
|
const pageContextFromRoute = await (0, index_js_1.route)(pageContext,
|
|
526
533
|
// Avoid calling onBeforeRoute() twice, otherwise onBeforeRoute() will wrongfully believe URL doesn't have locale after onBeforeRoute() already removed the local from the URL when called the first time.
|
|
@@ -545,7 +552,6 @@ async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
|
|
|
545
552
|
pageContext,
|
|
546
553
|
htmlString: documentHtml,
|
|
547
554
|
pageContextSerialized,
|
|
548
|
-
doNotCreateExtraDirectory: prerenderContext._noExtraDir ?? pageContext.is404
|
|
549
555
|
});
|
|
550
556
|
})));
|
|
551
557
|
}
|
|
@@ -574,23 +580,24 @@ async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPre
|
|
|
574
580
|
.filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext._pageConfigs))
|
|
575
581
|
.forEach((pageId) => {
|
|
576
582
|
const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
|
|
577
|
-
(0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while
|
|
583
|
+
(0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while there isn't any ${hookName}() hook returning an URL matching the page's route. You must use a ${hookName}() hook (https://vike.dev/${hookName}) for providing the list of URLs to be pre-rendered for that page. If you want to skip pre-rendering that page, you can remove this warning by setting +prerender to false at ${pageAt} (https://vike.dev/prerender#toggle) or by setting +prerender.partial to true (https://vike.dev/prerender#partial).`, { onlyOnce: true });
|
|
578
584
|
});
|
|
579
585
|
}
|
|
580
|
-
async function writeFiles({ pageContext, htmlString, pageContextSerialized
|
|
581
|
-
const
|
|
582
|
-
(0, utils_js_1.assert)(urlOriginal.startsWith('/'));
|
|
583
|
-
const writeJobs = [
|
|
584
|
-
write(urlOriginal, pageContext, 'HTML', htmlString, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel)
|
|
585
|
-
];
|
|
586
|
+
async function writeFiles({ pageContext, htmlString, pageContextSerialized }, viteConfig, onPagePrerender, prerenderContext, logLevel) {
|
|
587
|
+
const writeJobs = [write(pageContext, 'HTML', htmlString, viteConfig, onPagePrerender, prerenderContext, logLevel)];
|
|
586
588
|
if (pageContextSerialized !== null) {
|
|
587
|
-
writeJobs.push(write(
|
|
589
|
+
writeJobs.push(write(pageContext, 'JSON', pageContextSerialized, viteConfig, onPagePrerender, prerenderContext, logLevel));
|
|
588
590
|
}
|
|
589
591
|
await Promise.all(writeJobs);
|
|
590
592
|
}
|
|
591
|
-
async function write(
|
|
593
|
+
async function write(pageContext, fileType, fileContent, viteConfig, onPagePrerender, prerenderContext, logLevel) {
|
|
594
|
+
const { urlOriginal } = pageContext;
|
|
595
|
+
(0, utils_js_1.assert)(urlOriginal.startsWith('/'));
|
|
596
|
+
const { outDirClient } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
|
|
597
|
+
const { root } = viteConfig;
|
|
592
598
|
let fileUrl;
|
|
593
599
|
if (fileType === 'HTML') {
|
|
600
|
+
const doNotCreateExtraDirectory = prerenderContext._noExtraDir ?? pageContext.is404;
|
|
594
601
|
fileUrl = (0, utils_js_1.urlToFile)(urlOriginal, '.html', doNotCreateExtraDirectory);
|
|
595
602
|
}
|
|
596
603
|
else {
|
|
@@ -601,35 +608,35 @@ async function write(urlOriginal, pageContext, fileType, fileContent, root, outD
|
|
|
601
608
|
(0, utils_js_1.assert)(fileUrl.startsWith('/'));
|
|
602
609
|
const filePathRelative = fileUrl.slice(1);
|
|
603
610
|
(0, utils_js_1.assert)(!filePathRelative.startsWith('/'),
|
|
604
|
-
//
|
|
611
|
+
// https://github.com/vikejs/vike/issues/1929
|
|
605
612
|
{ urlOriginal, fileUrl });
|
|
606
613
|
(0, utils_js_1.assertPosixPath)(outDirClient);
|
|
607
614
|
(0, utils_js_1.assertPosixPath)(filePathRelative);
|
|
608
|
-
const filePath =
|
|
615
|
+
const filePath = node_path_1.default.posix.join(outDirClient, filePathRelative);
|
|
609
616
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
610
617
|
_prerenderResult: {
|
|
611
618
|
filePath,
|
|
612
|
-
fileContent
|
|
613
|
-
}
|
|
619
|
+
fileContent,
|
|
620
|
+
},
|
|
614
621
|
});
|
|
615
|
-
output.push({
|
|
622
|
+
prerenderContext.output.push({
|
|
616
623
|
filePath,
|
|
617
624
|
fileType,
|
|
618
625
|
fileContent,
|
|
619
|
-
pageContext
|
|
626
|
+
pageContext,
|
|
620
627
|
});
|
|
621
628
|
if (onPagePrerender) {
|
|
622
629
|
await onPagePrerender(pageContext);
|
|
623
630
|
}
|
|
624
631
|
else {
|
|
625
|
-
const { promises } = await Promise.resolve().then(() => __importStar(require('fs')));
|
|
632
|
+
const { promises } = await Promise.resolve().then(() => __importStar(require('node:fs')));
|
|
626
633
|
const { writeFile, mkdir } = promises;
|
|
627
|
-
await mkdir(
|
|
634
|
+
await mkdir(node_path_1.default.posix.dirname(filePath), { recursive: true });
|
|
628
635
|
await writeFile(filePath, fileContent);
|
|
629
636
|
if (logLevel === 'info') {
|
|
630
637
|
(0, utils_js_1.assertPosixPath)(root);
|
|
631
638
|
(0, utils_js_1.assertPosixPath)(outDirClient);
|
|
632
|
-
let outDirClientRelative =
|
|
639
|
+
let outDirClientRelative = node_path_1.default.posix.relative(root, outDirClient);
|
|
633
640
|
if (!outDirClientRelative.endsWith('/')) {
|
|
634
641
|
outDirClientRelative = outDirClientRelative + '/';
|
|
635
642
|
}
|
|
@@ -679,7 +686,7 @@ function checkOutdatedOptions(options) {
|
|
|
679
686
|
['base', 'outDir'].forEach((prop) => {
|
|
680
687
|
(0, utils_js_1.assertWarning)(options[prop] === undefined, `[prerender()] Option ${picocolors_1.default.cyan(prop)} is outdated and has no effect (vike now automatically determines ${picocolors_1.default.cyan(prop)})`, {
|
|
681
688
|
showStackTrace: true,
|
|
682
|
-
onlyOnce: true
|
|
689
|
+
onlyOnce: true,
|
|
683
690
|
});
|
|
684
691
|
});
|
|
685
692
|
}
|
|
@@ -720,10 +727,10 @@ function preparePrerenderContextForPublicUsage(prerenderContext) {
|
|
|
720
727
|
get() {
|
|
721
728
|
(0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${picocolors_1.default.underline(docLink)}`, {
|
|
722
729
|
showStackTrace: true,
|
|
723
|
-
onlyOnce: true
|
|
730
|
+
onlyOnce: true,
|
|
724
731
|
});
|
|
725
732
|
return prerenderContext.pageContexts;
|
|
726
|
-
}
|
|
733
|
+
},
|
|
727
734
|
});
|
|
728
735
|
}
|
|
729
736
|
// Required because of https://vike.dev/i18n#pre-rendering
|
|
@@ -734,3 +741,41 @@ function preparePrerenderContextForPublicUsage(prerenderContext) {
|
|
|
734
741
|
const prerenderContextPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(prerenderContext, 'prerenderContext');
|
|
735
742
|
return prerenderContextPublic;
|
|
736
743
|
}
|
|
744
|
+
async function prerenderRedirects(globalContext, onComplete, showWarningUponDynamicRedirects) {
|
|
745
|
+
const redirects = globalContext.config.redirects ?? [];
|
|
746
|
+
const redirectsStatic = (0, resolveRedirects_js_1.getStaticRedirectsForPrerender)(redirects, showWarningUponDynamicRedirects);
|
|
747
|
+
for (const [urlSource, urlTarget] of Object.entries(redirectsStatic)) {
|
|
748
|
+
const urlOriginal = urlSource;
|
|
749
|
+
const htmlString = getRedirectHtml(urlTarget);
|
|
750
|
+
await onComplete({
|
|
751
|
+
pageContext: { urlOriginal, pageId: null, is404: false, isRedirect: true },
|
|
752
|
+
htmlString,
|
|
753
|
+
pageContextSerialized: null,
|
|
754
|
+
});
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
function getRedirectHtml(urlTarget) {
|
|
758
|
+
const urlTargetSafe = (0, utils_js_1.escapeHtml)(urlTarget);
|
|
759
|
+
// To test it: /test/playground => http://localhost:3000/download
|
|
760
|
+
const htmlString = `<!DOCTYPE html>
|
|
761
|
+
<html lang="en">
|
|
762
|
+
<head>
|
|
763
|
+
<meta charset="UTF-8">
|
|
764
|
+
<meta http-equiv="refresh" content="0;url=${urlTargetSafe}">
|
|
765
|
+
<title>Redirect ${urlTargetSafe}</title>
|
|
766
|
+
<style>body{opacity:0}</style>
|
|
767
|
+
<noscript>
|
|
768
|
+
<style>body{opacity:1}</style>
|
|
769
|
+
</noscript>
|
|
770
|
+
</head>
|
|
771
|
+
<body style="min-height: 100vh; margin: 0; font-family: sans-serif; display: flex; justify-content: center; align-items: center; transition: opacity 0.3s;">
|
|
772
|
+
<script>setTimeout(()=>{document.body.style.opacity=1},2000)</script>
|
|
773
|
+
<div>
|
|
774
|
+
<h1>Redirect <a href="${urlTargetSafe}"><code style="background-color: #eaeaea; padding: 3px 5px; border-radius: 4px;">${urlTargetSafe}</code></a></h1>
|
|
775
|
+
<p>If you aren't redirected, click the link above.</p>
|
|
776
|
+
<!-- This HTML was generated by Vike. -->
|
|
777
|
+
</div>
|
|
778
|
+
</body>
|
|
779
|
+
</html>`;
|
|
780
|
+
return htmlString;
|
|
781
|
+
}
|
|
@@ -50,6 +50,6 @@ function runPrerender_forceExit() {
|
|
|
50
50
|
process.exit(0);
|
|
51
51
|
/* I guess there is no need to tell the user about it? Let's see if a user complains.
|
|
52
52
|
* I don't known whether there is a way to call process.exit(0) only if needed, thus I'm not sure if there is a way to conditionally show a assertInfo().
|
|
53
|
-
assertInfo(false, "Pre-rendering was forced exit. (Didn't gracefully exit because the event queue isn't empty. This is
|
|
53
|
+
assertInfo(false, "Pre-rendering was forced exit. (Didn't gracefully exit because the event queue isn't empty. This is usually fine, see ...", { onlyOnce: false })
|
|
54
54
|
*/
|
|
55
55
|
}
|
|
@@ -34,3 +34,4 @@ __exportStar(require("../../utils/isObject.js"), exports);
|
|
|
34
34
|
__exportStar(require("../../utils/isNullish.js"), exports);
|
|
35
35
|
__exportStar(require("../../utils/preservePropertyGetters.js"), exports);
|
|
36
36
|
__exportStar(require("../../utils/changeEnumerable.js"), exports);
|
|
37
|
+
__exportStar(require("../../utils/escapeHtml.js"), exports);
|