vike 0.4.236 → 0.4.237-commit-8749e81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client/runtime-client-routing/globalContext.js +2 -2
- package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +21 -13
- package/dist/cjs/client/shared/getJsonSerializedInHtml.js +10 -1
- package/dist/cjs/client/shared/utils.js +1 -0
- package/dist/cjs/node/api/preview.js +1 -1
- package/dist/cjs/node/prerender/runPrerender.js +4 -4
- package/dist/cjs/node/runtime/globalContext.js +127 -41
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +3 -1
- package/dist/cjs/node/runtime/html/serializeContext.js +25 -64
- package/dist/cjs/node/runtime/html/stream.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -3
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -7
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +8 -34
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +50 -14
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +23 -9
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
- package/dist/cjs/node/runtime/renderPage.js +9 -8
- package/dist/cjs/node/runtime/utils.js +4 -0
- package/dist/cjs/node/shared/utils.js +1 -0
- package/dist/cjs/node/shared/virtualFileId.js +110 -0
- package/dist/cjs/node/vite/index.js +5 -3
- package/dist/cjs/node/vite/onLoad.js +5 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +31 -23
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +20 -14
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +6 -12
- package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +119 -73
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +8 -15
- package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +8 -9
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +7 -3
- package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +47 -0
- package/dist/cjs/node/vite/plugins/pluginPreview.js +11 -4
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +6 -13
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +67 -0
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +18 -17
- package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
- package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
- package/dist/cjs/node/vite/shared/getMagicString.js +18 -0
- package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +10 -0
- package/dist/cjs/node/vite/shared/getOutDirs.js +18 -12
- package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
- package/dist/cjs/node/vite/shared/isViteServerBuild.js +56 -31
- package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +8 -19
- package/dist/cjs/node/vite/utils.js +1 -0
- package/dist/cjs/shared/createGlobalContextShared.js +36 -15
- package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
- package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
- package/dist/cjs/shared/modifyUrlSameOrigin.js +9 -4
- package/dist/cjs/shared/page-configs/loadPageEntry.js +25 -0
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +4 -4
- package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -16
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +7 -5
- package/dist/cjs/utils/cast.js +1 -1
- package/dist/cjs/utils/debug.js +1 -0
- package/dist/cjs/utils/getViteRPC.js +79 -0
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -0
- package/dist/cjs/utils/isRunnableDevEnvironment.js +9 -0
- package/dist/cjs/utils/virtualFileId.js +39 -0
- package/dist/esm/client/node.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +3 -3
- package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +14 -14
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +35 -48
- package/dist/esm/client/runtime-client-routing/globalContext.d.ts +3 -3
- package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
- package/dist/esm/client/runtime-client-routing/history.d.ts +3 -5
- package/dist/esm/client/runtime-client-routing/history.js +39 -22
- package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
- package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
- package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +5 -5
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +43 -30
- package/dist/esm/client/runtime-client-routing/utils.d.ts +2 -0
- package/dist/esm/client/runtime-client-routing/utils.js +2 -0
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +4 -4
- package/dist/esm/client/runtime-server-routing/globalContext.d.ts +3 -3
- package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
- package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +4 -4
- package/dist/esm/client/shared/createGetGlobalContextClient.js +21 -13
- package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
- package/dist/esm/client/shared/getJsonSerializedInHtml.js +10 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
- package/dist/esm/client/shared/utils.d.ts +1 -0
- package/dist/esm/client/shared/utils.js +1 -0
- package/dist/esm/node/api/preview.js +1 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +49 -141
- package/dist/esm/node/prerender/runPrerender.js +4 -4
- package/dist/esm/node/runtime/globalContext.d.ts +43 -63
- package/dist/esm/node/runtime/globalContext.js +128 -42
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +4 -2
- package/dist/esm/node/runtime/html/serializeContext.d.ts +11 -6
- package/dist/esm/node/runtime/html/serializeContext.js +25 -64
- package/dist/esm/node/runtime/html/stream.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -3
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +13 -36
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -7
- package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -3
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +0 -6
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +8 -34
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +51 -15
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +26 -12
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -3
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +30 -77
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
- package/dist/esm/node/runtime/renderPage.d.ts +13 -35
- package/dist/esm/node/runtime/renderPage.js +9 -8
- package/dist/esm/node/runtime/utils.d.ts +4 -0
- package/dist/esm/node/runtime/utils.js +4 -0
- package/dist/esm/node/shared/utils.d.ts +1 -0
- package/dist/esm/node/shared/utils.js +1 -0
- package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
- package/dist/esm/node/shared/virtualFileId.js +107 -0
- package/dist/esm/node/vite/index.js +5 -3
- package/dist/esm/node/vite/onLoad.js +5 -3
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +32 -24
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +0 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +21 -14
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +7 -10
- package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +121 -75
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
- package/dist/esm/node/vite/plugins/pluginExtractAssets.js +7 -8
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +26 -0
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +45 -0
- package/dist/esm/node/vite/plugins/pluginPreview.js +13 -6
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +14 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +65 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +17 -16
- package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
- package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
- package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
- package/dist/esm/node/vite/shared/getMagicString.d.ts +9 -0
- package/dist/esm/node/vite/shared/getMagicString.js +13 -0
- package/dist/esm/node/vite/shared/getManifestFilePathRelative.d.ts +2 -0
- package/dist/esm/node/vite/shared/getManifestFilePathRelative.js +8 -0
- package/dist/esm/node/vite/shared/getOutDirs.d.ts +6 -3
- package/dist/esm/node/vite/shared/getOutDirs.js +19 -13
- package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
- package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +14 -11
- package/dist/esm/node/vite/shared/isViteServerBuild.js +58 -31
- package/dist/esm/node/vite/shared/loggerVite.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +3 -5
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +10 -21
- package/dist/esm/node/vite/utils.d.ts +1 -0
- package/dist/esm/node/vite/utils.js +1 -0
- package/dist/esm/shared/createGlobalContextShared.d.ts +8 -8
- package/dist/esm/shared/createGlobalContextShared.js +38 -17
- package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
- package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/hooks/execHook.d.ts +2 -2
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/modifyUrlSameOrigin.d.ts +1 -1
- package/dist/esm/shared/modifyUrlSameOrigin.js +9 -4
- package/dist/esm/shared/page-configs/loadPageEntry.d.ts +3 -0
- package/dist/esm/shared/page-configs/loadPageEntry.js +23 -0
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +4 -4
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
- package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +17 -17
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/Config.d.ts +33 -98
- package/dist/esm/types/PageConfig.d.ts +9 -7
- package/dist/esm/types/VikeNamespace.d.ts +13 -0
- package/dist/esm/types/index.d.ts +3 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assertSetup.js +7 -5
- package/dist/esm/utils/cast.d.ts +2 -2
- package/dist/esm/utils/cast.js +1 -1
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +1 -0
- package/dist/esm/utils/getViteRPC.d.ts +6 -0
- package/dist/esm/utils/getViteRPC.js +77 -0
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.d.ts +7 -0
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -0
- package/dist/esm/utils/isRunnableDevEnvironment.d.ts +3 -0
- package/dist/esm/utils/isRunnableDevEnvironment.js +7 -0
- package/dist/esm/utils/objectFilter.d.ts +1 -1
- package/dist/esm/utils/virtualFileId.d.ts +6 -0
- package/dist/esm/{node/shared/virtualFiles.js → utils/virtualFileId.js} +15 -17
- package/package.json +16 -7
- package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -29
- package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -39
- package/dist/cjs/node/shared/virtualFiles.js +0 -41
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -23
- package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -10
- package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
- package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
- package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -26
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -37
- package/dist/esm/node/shared/virtualFiles.d.ts +0 -8
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.d.ts +0 -7
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -21
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -8
- package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
- package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
- package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
|
@@ -1,74 +1,113 @@
|
|
|
1
1
|
export { determineOptimizeDeps };
|
|
2
2
|
import { findPageFiles } from '../../shared/findPageFiles.js';
|
|
3
|
-
import { assert, assertIsImportPathNpmPackage, createDebugger, getNpmPackageName, isArray,
|
|
4
|
-
import { getVikeConfigInternal
|
|
3
|
+
import { assert, assertIsImportPathNpmPackage, createDebugger, getNpmPackageName, isArray, isFilePathAbsoluteFilesystem, isVirtualFileId, } from '../../utils.js';
|
|
4
|
+
import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
|
|
5
5
|
import { analyzeClientEntries } from '../pluginBuild/pluginBuildConfig.js';
|
|
6
|
-
import {
|
|
6
|
+
import { virtualFileIdGlobalEntryClientCR, virtualFileIdGlobalEntryClientSR } from '../../../shared/virtualFileId.js';
|
|
7
7
|
import { getFilePathResolved } from '../../shared/getFilePath.js';
|
|
8
|
+
import { getConfigValueSourcesRelevant } from '../pluginVirtualFiles/getConfigValueSourcesRelevant.js';
|
|
8
9
|
const debug = createDebugger('vike:optimizeDeps');
|
|
9
10
|
async function determineOptimizeDeps(config) {
|
|
10
11
|
const vikeConfig = await getVikeConfigInternal();
|
|
11
12
|
const { _pageConfigs: pageConfigs } = vikeConfig;
|
|
12
|
-
const {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
const { entriesClient, entriesServer, includeClient, includeServer } = await getPageDeps(config, pageConfigs);
|
|
14
|
+
config.optimizeDeps.include = add(config.optimizeDeps.include, includeClient);
|
|
15
|
+
config.optimizeDeps.entries = add(config.optimizeDeps.entries, entriesClient);
|
|
16
|
+
// Workaround until https://github.com/vitejs/vite-plugin-react/issues/650
|
|
17
|
+
// - TODO/soon: remove workaround once https://github.com/vitejs/vite/pull/20495 is released
|
|
18
|
+
includeServer.push('react/jsx-dev-runtime');
|
|
19
|
+
for (const envName in config.environments) {
|
|
20
|
+
const env = config.environments[envName];
|
|
21
|
+
if (env.consumer === 'server' && env.optimizeDeps.noDiscovery === false) {
|
|
22
|
+
env.optimizeDeps.include = add(env.optimizeDeps.include, includeServer);
|
|
23
|
+
env.optimizeDeps.entries = add(env.optimizeDeps.entries, entriesServer);
|
|
24
|
+
}
|
|
20
25
|
}
|
|
21
|
-
/* Other Vite plugins may populate optimizeDeps, e.g. Cypress: https://github.com/vikejs/vike/issues/386
|
|
22
|
-
assert(config.optimizeDeps.entries === undefined)
|
|
23
|
-
*/
|
|
24
|
-
config.optimizeDeps.include = [...include, ...normalizeInclude(config.optimizeDeps.include)];
|
|
25
|
-
config.optimizeDeps.entries = [...entries, ...normalizeEntries(config.optimizeDeps.entries)];
|
|
26
26
|
if (debug.isActivated)
|
|
27
|
-
debug('
|
|
27
|
+
debug('optimizeDeps', {
|
|
28
28
|
'config.optimizeDeps.entries': config.optimizeDeps.entries,
|
|
29
29
|
'config.optimizeDeps.include': config.optimizeDeps.include,
|
|
30
|
+
'config.optimizeDeps.exclude': config.optimizeDeps.exclude,
|
|
31
|
+
// @ts-ignore Vite doesn't seem to support ssr.optimizeDeps.entries (vite@7.0.6, July 2025)
|
|
32
|
+
'config.ssr.optimizeDeps.entries': config.ssr.optimizeDeps.entries,
|
|
33
|
+
'config.ssr.optimizeDeps.include': config.ssr.optimizeDeps.include,
|
|
34
|
+
'config.ssr.optimizeDeps.exclude': config.ssr.optimizeDeps.exclude,
|
|
30
35
|
});
|
|
31
36
|
}
|
|
32
37
|
async function getPageDeps(config, pageConfigs) {
|
|
33
|
-
let
|
|
34
|
-
let
|
|
35
|
-
|
|
38
|
+
let entriesClient = [];
|
|
39
|
+
let entriesServer = [];
|
|
40
|
+
let includeClient = [];
|
|
41
|
+
let includeServer = [];
|
|
42
|
+
const addEntry = (e, isForClientSide, definedAt) => {
|
|
36
43
|
assert(e);
|
|
37
|
-
entries
|
|
44
|
+
// optimizeDeps.entries expects filesystem absolute paths
|
|
45
|
+
assert(isVirtualFileId(e) || isFilePathAbsoluteFilesystem(e));
|
|
46
|
+
if (isExcluded(e, isForClientSide, definedAt))
|
|
47
|
+
return;
|
|
48
|
+
if (isForClientSide) {
|
|
49
|
+
entriesClient.push(e);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
entriesServer.push(e);
|
|
53
|
+
}
|
|
38
54
|
};
|
|
39
|
-
const addInclude = (e) => {
|
|
55
|
+
const addInclude = (e, isForClientSide, definedAt) => {
|
|
40
56
|
assert(e);
|
|
41
|
-
//
|
|
57
|
+
// optimizeDeps.include expects npm packages
|
|
58
|
+
assert(!e.startsWith('/'));
|
|
59
|
+
// Shouldn't be a path alias, as path aliases would need to be added to optimizeDeps.entries instead of optimizeDeps.include
|
|
42
60
|
assertIsImportPathNpmPackage(e);
|
|
43
|
-
|
|
61
|
+
if (isExcluded(e, isForClientSide, definedAt))
|
|
62
|
+
return;
|
|
63
|
+
if (isForClientSide) {
|
|
64
|
+
includeClient.push(e);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
includeServer.push(e);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const isExcluded = (e, isForClientSide, definedAt) => {
|
|
71
|
+
const exclude = isForClientSide ? config.optimizeDeps.exclude : config.ssr.optimizeDeps.exclude;
|
|
72
|
+
if (!exclude)
|
|
73
|
+
return false;
|
|
74
|
+
if (definedAt?.importPathAbsolute) {
|
|
75
|
+
const npmPackageName = getNpmPackageName(definedAt.importPathAbsolute);
|
|
76
|
+
if (npmPackageName && exclude.includes(npmPackageName))
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
return exclude.includes(e);
|
|
44
80
|
};
|
|
45
81
|
// V1 design
|
|
46
82
|
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const npmPackageName = getNpmPackageName(definedAt.importPathAbsolute);
|
|
61
|
-
if (npmPackageName && config.optimizeDeps.exclude?.includes(npmPackageName))
|
|
83
|
+
;
|
|
84
|
+
[true, false].forEach((isForClientSide) => {
|
|
85
|
+
pageConfigs.forEach((pageConfig) => {
|
|
86
|
+
Object.entries(pageConfig.configValueSources).forEach(([configName]) => {
|
|
87
|
+
const runtimeEnv = {
|
|
88
|
+
isForClientSide,
|
|
89
|
+
isDev: true,
|
|
90
|
+
// TO-DO/eventually/remove-server-router: let's eventually remove support for Server Routing
|
|
91
|
+
isClientRouting: true,
|
|
92
|
+
};
|
|
93
|
+
const sourcesRelevant = getConfigValueSourcesRelevant(configName, runtimeEnv, pageConfig);
|
|
94
|
+
sourcesRelevant.forEach((configValueSource) => {
|
|
95
|
+
if (!configValueSource.valueIsLoadedWithImport && !configValueSource.valueIsFilePath)
|
|
62
96
|
return;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
const { definedAt } = configValueSource;
|
|
98
|
+
if (definedAt.definedBy)
|
|
99
|
+
return;
|
|
100
|
+
if (definedAt.filePathAbsoluteUserRootDir !== null) {
|
|
101
|
+
addEntry(
|
|
102
|
+
// optimizeDeps.entries expects filesystem absolute paths
|
|
103
|
+
definedAt.filePathAbsoluteFilesystem, isForClientSide, definedAt);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
addInclude(
|
|
107
|
+
// optimizeDeps.include expects npm packages
|
|
108
|
+
definedAt.importPathAbsolute, isForClientSide, definedAt);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
72
111
|
});
|
|
73
112
|
});
|
|
74
113
|
});
|
|
@@ -80,35 +119,42 @@ async function getPageDeps(config, pageConfigs) {
|
|
|
80
119
|
pageFiles.forEach((filePathAbsoluteUserRootDir) => {
|
|
81
120
|
const entry = getFilePathResolved({ filePathAbsoluteUserRootDir, userRootDir });
|
|
82
121
|
const { filePathAbsoluteFilesystem } = entry;
|
|
83
|
-
addEntry(filePathAbsoluteFilesystem);
|
|
122
|
+
addEntry(filePathAbsoluteFilesystem, true);
|
|
84
123
|
});
|
|
85
124
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
125
|
+
// Add virtual files.
|
|
126
|
+
// - This doesn't work: Vite's dep optimizer doesn't seem to be able to crawl virtual files.
|
|
127
|
+
// - Should we make it work? E.g. by creating a temporary file at node_modules/.vike/virtualFiles.js
|
|
128
|
+
// - Or should we remove it? And make sure getPageDeps() also works for aliased import paths
|
|
129
|
+
// - If we do, then we need to adjust include/entries (maybe by making include === entries -> will Vite complain?)
|
|
130
|
+
{
|
|
131
|
+
const { hasClientRouting, hasServerRouting, clientEntries } = analyzeClientEntries(pageConfigs, config);
|
|
132
|
+
Object.values(clientEntries).forEach((e) => addEntry(e, true));
|
|
133
|
+
if (hasClientRouting)
|
|
134
|
+
addEntry(virtualFileIdGlobalEntryClientCR, true);
|
|
135
|
+
if (hasServerRouting)
|
|
136
|
+
addEntry(virtualFileIdGlobalEntryClientSR, true);
|
|
137
|
+
}
|
|
138
|
+
entriesClient = entriesClient;
|
|
139
|
+
entriesServer = entriesServer;
|
|
140
|
+
includeClient = includeClient;
|
|
141
|
+
includeServer = includeServer;
|
|
142
|
+
return {
|
|
143
|
+
entriesClient,
|
|
144
|
+
entriesServer,
|
|
145
|
+
includeClient,
|
|
146
|
+
includeServer,
|
|
147
|
+
};
|
|
98
148
|
}
|
|
99
|
-
function
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
assert(false);
|
|
149
|
+
function add(input, listAddendum) {
|
|
150
|
+
const list = !input ? [] : isArray(input) ? unique(input) : [input];
|
|
151
|
+
listAddendum.forEach((e) => {
|
|
152
|
+
if (!list.includes(e))
|
|
153
|
+
list.push(e);
|
|
154
|
+
});
|
|
155
|
+
return list;
|
|
107
156
|
}
|
|
108
|
-
function
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (include === undefined)
|
|
112
|
-
return [];
|
|
113
|
-
assert(false);
|
|
157
|
+
function unique(arr) {
|
|
158
|
+
const arrUnique = Array.from(new Set(arr));
|
|
159
|
+
return arr.length !== arrUnique.length ? arrUnique : arr;
|
|
114
160
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
export { pluginEnvVars };
|
|
2
|
-
import MagicString from 'magic-string';
|
|
3
2
|
import { loadEnv } from 'vite';
|
|
4
3
|
import { assert, assertPosixPath, assertUsage, assertWarning, escapeRegex, isArray, isNotNullish, lowerFirst, } from '../utils.js';
|
|
5
4
|
import { getModuleFilePathAbsolute } from '../shared/getFilePath.js';
|
|
6
5
|
import { normalizeId } from '../shared/normalizeId.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
|
|
7
|
+
import { getMagicString } from '../shared/getMagicString.js';
|
|
9
8
|
// TO-DO/eventually:
|
|
10
9
|
// - Make import.meta.env work inside +config.js
|
|
11
10
|
// - For it to work, we'll probably need the user to define the settings (e.g. `envDir`) for loadEnv() inside vike.config.js instead of vite.config.js
|
|
@@ -37,8 +36,8 @@ function pluginEnvVars() {
|
|
|
37
36
|
if (!code.includes('import.meta.env.'))
|
|
38
37
|
return;
|
|
39
38
|
const isBuild = config.command === 'build';
|
|
40
|
-
const isClientSide = !
|
|
41
|
-
const magicString =
|
|
39
|
+
const isClientSide = !isViteServerBuild_extraSafe(config, options, this.environment);
|
|
40
|
+
const { magicString, getMagicStringResult } = getMagicString(code, id);
|
|
42
41
|
// Find & check
|
|
43
42
|
const replacements = Object.entries(envsAll)
|
|
44
43
|
.filter(([key]) => {
|
|
@@ -76,14 +75,11 @@ function pluginEnvVars() {
|
|
|
76
75
|
.filter(isNotNullish);
|
|
77
76
|
// Apply
|
|
78
77
|
replacements.forEach(({ regExpStr, replacement }) => {
|
|
79
|
-
|
|
78
|
+
magicString.replaceAll(new RegExp(regExpStr, 'g'), JSON.stringify(replacement));
|
|
80
79
|
});
|
|
81
80
|
if (!magicString.hasChanged())
|
|
82
81
|
return null;
|
|
83
|
-
return
|
|
84
|
-
code: magicString.toString(),
|
|
85
|
-
map: magicString.generateMap({ hires: true, source: id }),
|
|
86
|
-
};
|
|
82
|
+
return getMagicStringResult();
|
|
87
83
|
},
|
|
88
84
|
};
|
|
89
85
|
}
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
// - This approach supports import path aliases `vite.config.js#resolve.alias` https://vitejs.dev/config/#resolve-alias
|
|
7
7
|
export { pluginExtractAssets };
|
|
8
8
|
export { extractAssetsRE };
|
|
9
|
-
import { assert, assertPosixPath, styleFileRE, createDebugger, isScriptFile, assertUsage, rollupSourceMapRemove, } from '../utils.js';
|
|
10
|
-
import { resolveVirtualFileId, isVirtualFileId, getVirtualFileId } from '../../shared/virtualFiles.js';
|
|
9
|
+
import { assert, assertPosixPath, styleFileRE, createDebugger, isScriptFile, assertUsage, rollupSourceMapRemove, addVirtualFileIdPrefix, isVirtualFileId, removeVirtualFileIdPrefix, } from '../utils.js';
|
|
11
10
|
import { extractAssetsAddQuery } from '../../shared/extractAssetsQuery.js';
|
|
12
11
|
import { isAsset } from '../shared/isAsset.js';
|
|
13
12
|
import { getImportStatements } from '../shared/parseEsModule.js';
|
|
@@ -16,8 +15,8 @@ import { handleAssetsManifest_isFixEnabled } from './pluginBuild/handleAssetsMan
|
|
|
16
15
|
import { getVikeConfigInternal } from '../shared/resolveVikeConfigInternal.js';
|
|
17
16
|
import { assertV1Design } from '../../shared/assertV1Design.js';
|
|
18
17
|
import { normalizeId } from '../shared/normalizeId.js';
|
|
19
|
-
import {
|
|
20
|
-
import { resolveIncludeAssetsImportedByServer } from '../../runtime/renderPage/getPageAssets.js';
|
|
18
|
+
import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
|
|
19
|
+
import { resolveIncludeAssetsImportedByServer } from '../../runtime/renderPage/getPageAssets/retrievePageAssetsProd.js';
|
|
21
20
|
const extractAssetsRE = /(\?|&)extractAssets(?:&|$)/;
|
|
22
21
|
const rawRE = /(\?|&)raw(?:&|$)/;
|
|
23
22
|
const urlRE = /(\?|&)url(?:&|$)/;
|
|
@@ -46,7 +45,7 @@ function pluginExtractAssets() {
|
|
|
46
45
|
}
|
|
47
46
|
const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(vikeConfig.config);
|
|
48
47
|
assert(includeAssetsImportedByServer);
|
|
49
|
-
assert(!
|
|
48
|
+
assert(!isViteServerBuild_extraSafe(config, options, this.environment));
|
|
50
49
|
const importStatements = await getImportStatements(src);
|
|
51
50
|
const moduleNames = getImportedModules(importStatements);
|
|
52
51
|
const code = moduleNames.map((moduleName) => `import '${moduleName}';`).join('\n');
|
|
@@ -63,7 +62,7 @@ function pluginExtractAssets() {
|
|
|
63
62
|
// - Vite's `vite:resolve` plugin; https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
|
|
64
63
|
enforce: 'pre',
|
|
65
64
|
async resolveId(source, importer, options) {
|
|
66
|
-
if (
|
|
65
|
+
if (isViteServerBuild_extraSafe(config, options, this.environment)) {
|
|
67
66
|
// When building for the server, there should never be a `?extractAssets` query
|
|
68
67
|
assert(!extractAssetsRE.test(source));
|
|
69
68
|
assert(importer === undefined || !extractAssetsRE.test(importer));
|
|
@@ -124,7 +123,7 @@ function pluginExtractAssets() {
|
|
|
124
123
|
load(id) {
|
|
125
124
|
if (!isVirtualFileId(id))
|
|
126
125
|
return undefined;
|
|
127
|
-
id =
|
|
126
|
+
id = removeVirtualFileIdPrefix(id);
|
|
128
127
|
if (id === EMPTY_MODULE_ID) {
|
|
129
128
|
return '// Erased by vike:pluginExtractAssets';
|
|
130
129
|
}
|
|
@@ -151,7 +150,7 @@ function pluginExtractAssets() {
|
|
|
151
150
|
}
|
|
152
151
|
function emptyModule(file, importer) {
|
|
153
152
|
debugOperation('NUKED', file, importer);
|
|
154
|
-
return
|
|
153
|
+
return addVirtualFileIdPrefix(EMPTY_MODULE_ID);
|
|
155
154
|
}
|
|
156
155
|
function appendExtractAssetsQuery(file, importer) {
|
|
157
156
|
debugOperation('TRANSFORMED', file, importer);
|
|
@@ -4,18 +4,19 @@ export { extractExportNamesRE };
|
|
|
4
4
|
import { assert, getFileExtension, createDebugger, getGlobalObject, assertUsage, rollupSourceMapRemove, } from '../utils.js';
|
|
5
5
|
import { getExportNames } from '../shared/parseEsModule.js';
|
|
6
6
|
import { normalizeId } from '../shared/normalizeId.js';
|
|
7
|
-
import {
|
|
7
|
+
import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
|
|
8
8
|
const extractExportNamesRE = /(\?|&)extractExportNames(?:&|$)/;
|
|
9
9
|
const debug = createDebugger('vike:pluginExtractExportNames');
|
|
10
10
|
const globalObject = getGlobalObject('plugins/pluginExtractExportNames.ts', {});
|
|
11
11
|
function pluginExtractExportNames() {
|
|
12
12
|
let isDev = false;
|
|
13
|
+
let config;
|
|
13
14
|
return {
|
|
14
15
|
name: 'vike:pluginExtractExportNames',
|
|
15
16
|
enforce: 'post',
|
|
16
17
|
async transform(src, id, options) {
|
|
17
18
|
id = normalizeId(id);
|
|
18
|
-
const isClientSide = !
|
|
19
|
+
const isClientSide = !isViteServerBuild_extraSafe(config, options, this.environment);
|
|
19
20
|
if (extractExportNamesRE.test(id)) {
|
|
20
21
|
const code = await getExtractExportNamesCode(src, isClientSide, !isDev, id);
|
|
21
22
|
debug('id ' + id, ['result:\n' + code.code.trim(), 'src:\n' + src.trim()]);
|
|
@@ -25,6 +26,9 @@ function pluginExtractExportNames() {
|
|
|
25
26
|
configureServer() {
|
|
26
27
|
isDev = true;
|
|
27
28
|
},
|
|
29
|
+
configResolved(config_) {
|
|
30
|
+
config = config_;
|
|
31
|
+
},
|
|
28
32
|
config() {
|
|
29
33
|
if (debug.isActivated) {
|
|
30
34
|
return { logLevel: 'silent' };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { pluginNonRunnableDev };
|
|
2
|
+
import type { Plugin, ViteDevServer } from 'vite';
|
|
3
|
+
import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
4
|
+
export type ViteRPC = ReturnType<typeof getViteRpcFunctions>;
|
|
5
|
+
declare function getViteRpcFunctions(viteDevServer: ViteDevServer): {
|
|
6
|
+
transformIndexHtmlRPC(html: string): Promise<string>;
|
|
7
|
+
retrievePageAssetsDevRPC(clientDependencies: ClientDependency[], clientEntries: string[]): Promise<{
|
|
8
|
+
clientEntriesSrc: string[];
|
|
9
|
+
assetUrls: string[];
|
|
10
|
+
}>;
|
|
11
|
+
getViteConfigRuntimeRPC(): Promise<{
|
|
12
|
+
root: string;
|
|
13
|
+
build: {
|
|
14
|
+
outDir: string;
|
|
15
|
+
};
|
|
16
|
+
_baseViteOriginal: string;
|
|
17
|
+
vitePluginServerEntry: {
|
|
18
|
+
inject: boolean | undefined;
|
|
19
|
+
};
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
declare global {
|
|
23
|
+
var __VIKE__DYNAMIC_IMPORT: (module: string) => Promise<Record<string, unknown>>;
|
|
24
|
+
var __VIKE__IS_NON_RUNNABLE_DEV: undefined | boolean;
|
|
25
|
+
}
|
|
26
|
+
declare function pluginNonRunnableDev(): Plugin;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export { pluginNonRunnableDev };
|
|
2
|
+
import { createViteRPC, assertIsNotProductionRuntime, requireResolveVikeDistFile, isRunnableDevEnvironment, } from '../utils.js';
|
|
3
|
+
import { retrievePageAssetsDev } from '../../runtime/renderPage/getPageAssets/retrievePageAssetsDev.js';
|
|
4
|
+
import { getViteConfigRuntime } from '../shared/getViteConfigRuntime.js';
|
|
5
|
+
import { getMagicString } from '../shared/getMagicString.js';
|
|
6
|
+
assertIsNotProductionRuntime();
|
|
7
|
+
function getViteRpcFunctions(viteDevServer) {
|
|
8
|
+
return {
|
|
9
|
+
async transformIndexHtmlRPC(html) {
|
|
10
|
+
return await viteDevServer.transformIndexHtml('/', html);
|
|
11
|
+
},
|
|
12
|
+
async retrievePageAssetsDevRPC(clientDependencies, clientEntries) {
|
|
13
|
+
return await retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries);
|
|
14
|
+
},
|
|
15
|
+
async getViteConfigRuntimeRPC() {
|
|
16
|
+
return getViteConfigRuntime(viteDevServer.config);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function pluginNonRunnableDev() {
|
|
21
|
+
const runtimeGlobalContextFilePath = requireResolveVikeDistFile('dist/esm/node/runtime/globalContext.js');
|
|
22
|
+
let config;
|
|
23
|
+
return {
|
|
24
|
+
name: 'vike:pluginNonRunnableDev',
|
|
25
|
+
configureServer(viteDevServer) {
|
|
26
|
+
createViteRPC(viteDevServer, getViteRpcFunctions);
|
|
27
|
+
},
|
|
28
|
+
configResolved(config_) {
|
|
29
|
+
config = config_;
|
|
30
|
+
},
|
|
31
|
+
transform(code, id) {
|
|
32
|
+
if (!config._isDev)
|
|
33
|
+
return;
|
|
34
|
+
if (id !== runtimeGlobalContextFilePath)
|
|
35
|
+
return;
|
|
36
|
+
const isNonRunnableDev = !isRunnableDevEnvironment(this.environment);
|
|
37
|
+
const { magicString, getMagicStringResult } = getMagicString(code, id);
|
|
38
|
+
if (isNonRunnableDev) {
|
|
39
|
+
magicString.replaceAll('__VIKE__DYNAMIC_IMPORT', 'import');
|
|
40
|
+
}
|
|
41
|
+
magicString.replaceAll('__VIKE__IS_NON_RUNNABLE_DEV', JSON.stringify(isNonRunnableDev));
|
|
42
|
+
return getMagicStringResult();
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
export { pluginPreview };
|
|
2
|
-
import { assertUsage, applyPreview } from '../utils.js';
|
|
2
|
+
import { assertUsage, applyPreview, assert } from '../utils.js';
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { addSsrMiddleware } from '../shared/addSsrMiddleware.js';
|
|
6
6
|
import pc from '@brillout/picocolors';
|
|
7
7
|
import { logDockerHint } from './pluginDev.js';
|
|
8
|
-
import { getOutDirs,
|
|
8
|
+
import { getOutDirs, resolveOutDir_configEnvironment } from '../shared/getOutDirs.js';
|
|
9
9
|
import sirv from 'sirv';
|
|
10
10
|
import { getVikeConfigInternal } from '../shared/resolveVikeConfigInternal.js';
|
|
11
11
|
function pluginPreview() {
|
|
12
12
|
let config;
|
|
13
|
+
let configUnresolved;
|
|
13
14
|
let vikeConfig;
|
|
14
15
|
return {
|
|
15
16
|
name: 'vike:pluginPreview',
|
|
16
17
|
apply: applyPreview,
|
|
17
18
|
config(config) {
|
|
19
|
+
configUnresolved = config;
|
|
18
20
|
return {
|
|
19
21
|
appType: 'custom',
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
configEnvironment(envName, configEnv) {
|
|
25
|
+
assert(configUnresolved);
|
|
26
|
+
return {
|
|
20
27
|
build: {
|
|
21
|
-
outDir:
|
|
28
|
+
outDir: resolveOutDir_configEnvironment(configUnresolved, envName, configEnv),
|
|
22
29
|
},
|
|
23
30
|
};
|
|
24
31
|
},
|
|
@@ -46,7 +53,7 @@ function pluginPreview() {
|
|
|
46
53
|
},
|
|
47
54
|
};
|
|
48
55
|
function assertDist(isPrerenderingEnabledForAllPages) {
|
|
49
|
-
const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config);
|
|
56
|
+
const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config, undefined);
|
|
50
57
|
const dirS = [outDirRoot, outDirClient];
|
|
51
58
|
if (!isPrerenderingEnabledForAllPages)
|
|
52
59
|
dirS.push(outDirServer);
|
|
@@ -55,11 +62,11 @@ function pluginPreview() {
|
|
|
55
62
|
});
|
|
56
63
|
}
|
|
57
64
|
function addStaticAssetsMiddleware(middlewares) {
|
|
58
|
-
const { outDirClient } = getOutDirs(config);
|
|
65
|
+
const { outDirClient } = getOutDirs(config, undefined);
|
|
59
66
|
middlewares.use(sirv(outDirClient));
|
|
60
67
|
}
|
|
61
68
|
function addStatic404Middleware(middlewares) {
|
|
62
|
-
const { outDirClient } = getOutDirs(config);
|
|
69
|
+
const { outDirClient } = getOutDirs(config, undefined);
|
|
63
70
|
middlewares.use(config.base, (_, res, next) => {
|
|
64
71
|
const file = path.posix.join(outDirClient, './404.html');
|
|
65
72
|
if (fs.existsSync(file)) {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export { pluginReplaceConstants };
|
|
2
|
-
import MagicString from 'magic-string';
|
|
3
2
|
import { assert, assertPosixPath } from '../utils.js';
|
|
4
3
|
import { normalizeId } from '../shared/normalizeId.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
|
|
5
|
+
import { getMagicString } from '../shared/getMagicString.js';
|
|
7
6
|
function pluginReplaceConstants() {
|
|
8
7
|
let config;
|
|
9
8
|
return {
|
|
@@ -30,24 +29,21 @@ function pluginReplaceConstants() {
|
|
|
30
29
|
// @ts-expect-error
|
|
31
30
|
if (config._skipVikeReplaceConstants?.(id))
|
|
32
31
|
return;
|
|
33
|
-
const magicString =
|
|
32
|
+
const { magicString, getMagicStringResult } = getMagicString(code, id);
|
|
34
33
|
const constantsMap = [];
|
|
35
34
|
constantsMap.push({
|
|
36
35
|
constants: ['pageContext.isClientSide', 'globalContext.isClientSide', 'pageContext.globalContext.isClientSide'],
|
|
37
|
-
replacement: !
|
|
36
|
+
replacement: !isViteServerBuild_extraSafe(config, options, this.environment),
|
|
38
37
|
});
|
|
39
38
|
constantsMap.forEach(({ constants, replacement }) => {
|
|
40
39
|
if (!constants.some((c) => code.includes(c)))
|
|
41
40
|
return;
|
|
42
41
|
const regExp = getConstantRegExp(constants);
|
|
43
|
-
|
|
42
|
+
magicString.replaceAll(regExp, JSON.stringify(replacement));
|
|
44
43
|
});
|
|
45
44
|
if (!magicString.hasChanged())
|
|
46
45
|
return null;
|
|
47
|
-
return
|
|
48
|
-
code: magicString.toString(),
|
|
49
|
-
map: magicString.generateMap({ hires: true, source: id }),
|
|
50
|
-
};
|
|
46
|
+
return getMagicStringResult();
|
|
51
47
|
},
|
|
52
48
|
};
|
|
53
49
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
import {
|
|
1
|
+
export { generateVirtualFileGlobalEntry };
|
|
2
|
+
import { generateVirtualFileId } from '../../../shared/virtualFileId.js';
|
|
3
3
|
import { debug } from './debug.js';
|
|
4
4
|
import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
|
|
5
|
-
import { isRuntimeEnvMatch } from './isRuntimeEnvMatch.js';
|
|
6
5
|
import { serializeConfigValues } from '../../../../shared/page-configs/serialize/serializeConfigValues.js';
|
|
7
|
-
async function
|
|
6
|
+
async function generateVirtualFileGlobalEntry(isForClientSide, isDev, id, isClientRouting) {
|
|
8
7
|
const vikeConfig = await getVikeConfigInternal(true);
|
|
9
8
|
const { _pageConfigs: pageConfigs, _pageConfigGlobal: pageConfigGlobal } = vikeConfig;
|
|
10
9
|
return getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting);
|
|
@@ -19,6 +18,10 @@ function getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isCl
|
|
|
19
18
|
lines.push('export const pageConfigGlobalSerialized = {');
|
|
20
19
|
lines.push(getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv));
|
|
21
20
|
lines.push('};');
|
|
21
|
+
if (!isForClientSide && isDev) {
|
|
22
|
+
// https://vite.dev/guide/api-environment-frameworks.html
|
|
23
|
+
lines.push('if (import.meta.hot) import.meta.hot.accept();');
|
|
24
|
+
}
|
|
22
25
|
const code = [...importStatements, ...lines].join('\n');
|
|
23
26
|
debug(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
|
|
24
27
|
return code;
|
|
@@ -31,11 +34,10 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
|
|
|
31
34
|
lines.push(` pageId: ${JSON.stringify(pageId)},`);
|
|
32
35
|
lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`);
|
|
33
36
|
lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`);
|
|
34
|
-
const virtualFileId = JSON.stringify(
|
|
35
|
-
|
|
36
|
-
lines.push(` loadConfigLazy: ${load},`);
|
|
37
|
+
const virtualFileId = JSON.stringify(generateVirtualFileId({ type: 'page-entry', pageId, isForClientSide }));
|
|
38
|
+
lines.push(` loadVirtualFilePageEntry: () => ({ moduleId: ${virtualFileId}, moduleExportsPromise: import(${virtualFileId}) }),`);
|
|
37
39
|
lines.push(` configValuesSerialized: {`);
|
|
38
|
-
lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv,
|
|
40
|
+
lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, { isForClientSide, isClientRouting, isDev }, ' ', true));
|
|
39
41
|
lines.push(` },`);
|
|
40
42
|
lines.push(` },`);
|
|
41
43
|
});
|
|
@@ -45,7 +47,7 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
|
|
|
45
47
|
function getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv) {
|
|
46
48
|
const lines = [];
|
|
47
49
|
lines.push(` configValuesSerialized: {`);
|
|
48
|
-
lines.push(...serializeConfigValues(pageConfigGlobal, importStatements, filesEnv,
|
|
50
|
+
lines.push(...serializeConfigValues(pageConfigGlobal, importStatements, filesEnv, { isForClientSide, isClientRouting, isDev }, ' ', null));
|
|
49
51
|
lines.push(` },`);
|
|
50
52
|
const code = lines.join('\n');
|
|
51
53
|
return code;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { generateVirtualFileGlobalEntryWithOldDesign };
|
|
2
|
+
import type { ResolvedConfig } from 'vite';
|
|
3
|
+
import type { Environment } from 'vite';
|
|
4
|
+
declare function generateVirtualFileGlobalEntryWithOldDesign(id: string, options: {
|
|
5
|
+
ssr?: boolean;
|
|
6
|
+
} | undefined, config: ResolvedConfig, env: Environment, isDev: boolean): Promise<string>;
|