vike 0.4.218 → 0.4.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/__internal/index.js +11 -11
- package/dist/cjs/node/api/build.js +20 -11
- package/dist/cjs/node/api/context.js +5 -1
- package/dist/cjs/node/api/index.js +17 -7
- package/dist/cjs/node/api/prepareViteApiCall.js +39 -11
- package/dist/cjs/node/cli/entry.js +19 -7
- package/dist/cjs/node/plugin/index.js +5 -5
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +3 -4
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
- package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/cjs/node/plugin/plugins/commonConfig.js +39 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +4 -3
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
- package/dist/cjs/node/prerender/isPrerenderAutoRunEnabled.js +16 -0
- package/dist/cjs/node/prerender/runPrerender.js +94 -66
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/globalContext.js +108 -34
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/index-common.js +0 -15
- package/dist/cjs/node/runtime/onLoad.js +17 -3
- package/dist/cjs/node/runtime/page-files/setup.js +2 -4
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/cjs/node/runtime/renderPage.js +21 -22
- package/dist/cjs/node/runtime/utils.js +1 -0
- package/dist/cjs/node/runtime-dev/index.js +17 -7
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/cjs/shared/getPageFiles.js +3 -9
- package/dist/cjs/shared/hooks/getHook.js +3 -3
- package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +4 -3
- package/dist/cjs/utils/assertSetup.js +47 -16
- package/dist/cjs/utils/debug.js +11 -6
- package/dist/cjs/utils/getGlobalObject.js +1 -2
- package/dist/cjs/utils/objectReplace.js +9 -0
- package/dist/esm/__internal/index.d.ts +3 -5
- package/dist/esm/__internal/index.js +6 -8
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
- package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/entry.js +0 -1
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.d.ts +4 -0
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +13 -3
- package/dist/esm/client/client-routing-runtime/initOnPopState.js +8 -0
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
- package/dist/esm/client/client-routing-runtime/skipLink.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/skipLink.js +1 -0
- package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/entry.js +0 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
- package/dist/esm/client/shared/normalizeClientSideUrl.js +2 -3
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.js +3 -4
- package/dist/esm/node/api/context.d.ts +3 -1
- package/dist/esm/node/api/context.js +6 -2
- package/dist/esm/node/api/prepareViteApiCall.d.ts +1 -1
- package/dist/esm/node/api/prepareViteApiCall.js +25 -7
- package/dist/esm/node/cli/entry.js +2 -0
- package/dist/esm/node/cli/parseCli.d.ts +1 -1
- package/dist/esm/node/plugin/index.d.ts +1 -1
- package/dist/esm/node/plugin/index.js +5 -5
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +3 -4
- package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
- package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +40 -5
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +4 -3
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.d.ts +5 -0
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.js +14 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +1 -2
- package/dist/esm/node/prerender/runPrerender.js +78 -60
- 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.d.ts +23 -7
- package/dist/esm/node/runtime/globalContext.js +108 -34
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/esm/node/runtime/index-common.d.ts +0 -1
- package/dist/esm/node/runtime/index-common.js +0 -15
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
- package/dist/esm/node/runtime/onLoad.js +16 -2
- package/dist/esm/node/runtime/page-files/setup.js +3 -3
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/esm/node/runtime/renderPage.js +22 -23
- package/dist/esm/node/runtime/utils.d.ts +1 -0
- package/dist/esm/node/runtime/utils.js +1 -0
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/esm/shared/getPageFiles.d.ts +2 -5
- package/dist/esm/shared/getPageFiles.js +1 -4
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
- package/dist/esm/shared/page-configs/Config.d.ts +20 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +7 -3
- package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
- package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +1 -1
- package/dist/esm/shared/types.d.ts +1 -1
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/types/index.d.ts +1 -1
- 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 +4 -3
- package/dist/esm/utils/assertSetup.js +47 -16
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +11 -6
- package/dist/esm/utils/getGlobalObject.js +1 -2
- package/dist/esm/utils/objectReplace.d.ts +1 -0
- package/dist/esm/utils/objectReplace.js +6 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +4 -13
- package/__internal/loadImportBuild.js +0 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
- package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
- package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
- package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
- package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
- package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
- package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
- package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
- package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
- /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
- /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
export { baseUrls };
|
|
2
2
|
import { resolveBase, resolveBaseFromResolvedConfig } from '../../shared/resolveBase.js';
|
|
3
3
|
import { assert } from '../utils.js';
|
|
4
|
-
import { getVikeConfig
|
|
5
|
-
|
|
6
|
-
function baseUrls(vikeVitePluginOptions) {
|
|
4
|
+
import { getVikeConfig } from './importUserCode/v1-design/getVikeConfig.js';
|
|
5
|
+
function baseUrls() {
|
|
7
6
|
let basesResolved;
|
|
8
|
-
let root;
|
|
9
7
|
return {
|
|
10
8
|
name: 'vike:baseUrls',
|
|
11
9
|
enforce: 'post',
|
|
12
|
-
async config(config
|
|
10
|
+
async config(config) {
|
|
13
11
|
const isDev = config._isDev;
|
|
14
12
|
assert(typeof isDev === 'boolean');
|
|
15
|
-
const operation = env.command === 'build' ? 'build' : env.isPreview ? 'preview' : 'dev';
|
|
16
|
-
root = config.root ? normalizeViteRoot(config.root) : await getViteRoot(operation);
|
|
17
|
-
assert(root);
|
|
18
13
|
const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
|
|
19
|
-
|
|
20
|
-
basesResolved = resolveBase(baseViteOriginal, vikeConfig.vikeConfigGlobal.baseServer, vikeConfig.vikeConfigGlobal.baseAssets);
|
|
14
|
+
basesResolved = resolveBase(baseViteOriginal, config.vike.vikeConfigGlobal.baseServer, config.vike.vikeConfigGlobal.baseAssets);
|
|
21
15
|
// We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
|
|
22
16
|
process.env.BASE_SERVER = basesResolved.baseServer;
|
|
23
17
|
process.env.BASE_ASSETS = basesResolved.baseAssets;
|
|
@@ -32,7 +26,6 @@ function baseUrls(vikeVitePluginOptions) {
|
|
|
32
26
|
};
|
|
33
27
|
},
|
|
34
28
|
async configResolved(config) {
|
|
35
|
-
assertViteRoot(root, config);
|
|
36
29
|
const vikeConfig = await getVikeConfig(config);
|
|
37
30
|
const basesResolved2 = resolveBaseFromResolvedConfig(vikeConfig.vikeConfigGlobal.baseServer, vikeConfig.vikeConfigGlobal.baseAssets, config);
|
|
38
31
|
assert(basesResolved2.baseServer === basesResolved.baseServer);
|
|
@@ -11,7 +11,7 @@ import { createRequire } from 'module';
|
|
|
11
11
|
import fs from 'fs/promises';
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import { fixServerAssets, fixServerAssets_assertCssCodeSplit, fixServerAssets_assertCssTarget, fixServerAssets_assertCssTarget_populate, fixServerAssets_isEnabled } from './buildConfig/fixServerAssets.js';
|
|
14
|
-
import { set_ASSETS_MAP } from './
|
|
14
|
+
import { set_ASSETS_MAP } from './buildEntry/index.js';
|
|
15
15
|
import { prependEntriesDir } from '../../shared/prependEntriesDir.js';
|
|
16
16
|
import { getFilePathResolved } from '../shared/getFilePath.js';
|
|
17
17
|
import { getConfigValueBuildTime } from '../../../shared/page-configs/getConfigValueBuildTime.js';
|
|
@@ -117,7 +117,7 @@ async function getEntries(config) {
|
|
|
117
117
|
if (viteIsSSR(config)) {
|
|
118
118
|
const pageEntries = getPageEntries(pageConfigs);
|
|
119
119
|
const entries = {
|
|
120
|
-
//
|
|
120
|
+
// buildEntry: resolve('dist/esm/node/buildEntry.js'), // TODO/next-major-release: remove
|
|
121
121
|
...pageFileEntries,
|
|
122
122
|
// Ensure Rollup generates a bundle per page: https://github.com/vikejs/vike/issues/349#issuecomment-1166247275
|
|
123
123
|
...pageEntries
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { getVikeManifest };
|
|
2
2
|
import { type PluginManifest } from '../../../shared/assertPluginManifest.js';
|
|
3
|
-
import type { VikeConfigGlobal } from '../importUserCode/v1-design/getVikeConfig
|
|
3
|
+
import type { VikeConfigGlobal } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
4
4
|
import type { ResolvedConfig } from 'vite';
|
|
5
5
|
declare function getVikeManifest(vikeConfigGlobal: VikeConfigGlobal, viteConfig: ResolvedConfig): PluginManifest;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { buildEntry };
|
|
2
2
|
export { set_ASSETS_MAP };
|
|
3
3
|
import type { Plugin, Rollup } from 'vite';
|
|
4
4
|
type Bundle = Rollup.OutputBundle;
|
|
5
5
|
type Options = Rollup.NormalizedOutputOptions;
|
|
6
|
-
declare function
|
|
6
|
+
declare function buildEntry(): Plugin[];
|
|
7
7
|
/** Set the value of the ASSETS_MAP constant inside dist/server/entry.js (or dist/server/index.js) */
|
|
8
8
|
declare function set_ASSETS_MAP(options: Options, bundle: Bundle): Promise<void>;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { buildEntry };
|
|
2
2
|
export { set_ASSETS_MAP };
|
|
3
3
|
import { serverProductionEntryPlugin } from '@brillout/vite-plugin-server-entry/plugin';
|
|
4
|
+
import { virtualFileIdImportUserCodeServer } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
|
|
5
|
+
import { getVikeManifest } from './getVikeManifest.js';
|
|
6
|
+
import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
4
7
|
import { assert, getOutDirs, toPosixPath } from '../../utils.js';
|
|
8
|
+
import fs from 'fs/promises';
|
|
5
9
|
import path from 'path';
|
|
6
10
|
import { createRequire } from 'module';
|
|
7
|
-
import { getVikeManifest } from './getVikeManifest.js';
|
|
8
|
-
import fs from 'fs/promises';
|
|
9
|
-
import { virtualFileIdImportUserCodeServer } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
|
|
10
|
-
import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
11
11
|
// @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
|
|
12
12
|
const importMetaUrl = import.meta.url;
|
|
13
13
|
const require_ = createRequire(importMetaUrl);
|
|
14
14
|
const ASSETS_MAP = '__VITE_ASSETS_MAP__';
|
|
15
|
-
function
|
|
15
|
+
function buildEntry() {
|
|
16
16
|
let config;
|
|
17
17
|
let vikeConfigGlobal;
|
|
18
18
|
return [
|
|
19
19
|
{
|
|
20
|
-
name: 'vike:
|
|
20
|
+
name: 'vike:buildEntry',
|
|
21
21
|
enforce: 'post',
|
|
22
22
|
async configResolved(config_) {
|
|
23
23
|
config = config_;
|
|
@@ -38,17 +38,16 @@ function getServerProductionEntryCode(config, vikeConfigGlobal) {
|
|
|
38
38
|
const vikeManifest = getVikeManifest(vikeConfigGlobal, config);
|
|
39
39
|
// Let's eventually simplify and move everything to a single virtual module
|
|
40
40
|
const importerCode = [
|
|
41
|
-
` import {
|
|
41
|
+
` import { setGlobalContext_buildEntry } from '${importPath}';`,
|
|
42
42
|
` import * as pageFiles from '${virtualFileIdImportUserCodeServer}';`,
|
|
43
43
|
` {`,
|
|
44
44
|
// We first set the values to a variable because of a Rollup bug, and this workaround doesn't work: https://github.com/vikejs/vike/commit/d5f3a4f7aae5a8bc44192e6cbb2bcb9007be188d
|
|
45
45
|
` const assetsManifest = ${ASSETS_MAP};`,
|
|
46
46
|
` const pluginManifest = ${JSON.stringify(vikeManifest, null, 2)};`,
|
|
47
|
-
'
|
|
48
|
-
` pageFiles
|
|
49
|
-
`
|
|
50
|
-
|
|
51
|
-
` pluginManifest: () => pluginManifest,`,
|
|
47
|
+
' setGlobalContext_buildEntry({',
|
|
48
|
+
` pageFiles,`,
|
|
49
|
+
` assetsManifest,`,
|
|
50
|
+
` pluginManifest,`,
|
|
52
51
|
' });',
|
|
53
52
|
` }`,
|
|
54
53
|
''
|
|
@@ -85,12 +84,12 @@ function find_ASSETS_MAP(bundle) {
|
|
|
85
84
|
function getImportPath(config) {
|
|
86
85
|
// We resolve filePathAbsolute even if we don't use it: we use require.resolve() as an assertion that the relative path is correct
|
|
87
86
|
const filePathAbsolute = toPosixPath(
|
|
88
|
-
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/
|
|
89
|
-
require_.resolve(`../../../../../../dist/esm/
|
|
87
|
+
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/buildEntry/index.js
|
|
88
|
+
require_.resolve(`../../../../../../dist/esm/__internal/index.js`));
|
|
90
89
|
if (
|
|
91
|
-
// Let's implement a new config if a user needs the import to be a relative path instead of 'vike/__internal
|
|
90
|
+
// Let's implement a new config if a user needs the import to be a relative path instead of 'vike/__internal' (AFAIK a relative path is needed only if a framework has npm package 'vike' as direct dependency instead of a peer dependency and if the user of that framework uses pnpm)
|
|
92
91
|
true) {
|
|
93
|
-
return 'vike/__internal
|
|
92
|
+
return 'vike/__internal';
|
|
94
93
|
}
|
|
95
94
|
else {
|
|
96
95
|
const { outDirServer } = getOutDirs(config);
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export { commonConfig };
|
|
2
2
|
import { type Plugin } from 'vite';
|
|
3
|
+
import { type VikeConfigObject } from './importUserCode/v1-design/getVikeConfig.js';
|
|
3
4
|
declare module 'vite' {
|
|
4
5
|
interface UserConfig {
|
|
5
6
|
_isDev?: boolean;
|
|
6
7
|
_vikeVitePluginOptions?: unknown;
|
|
8
|
+
_root?: string;
|
|
9
|
+
vike?: VikeConfigObject;
|
|
7
10
|
}
|
|
8
11
|
}
|
|
9
12
|
declare function commonConfig(vikeVitePluginOptions: unknown): Plugin[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { commonConfig };
|
|
2
2
|
import { mergeConfig } from 'vite';
|
|
3
|
-
import { assert, assertUsage, assertWarning, findPackageJson, isDevCheck, isDocker } from '../utils.js';
|
|
3
|
+
import { assert, assertUsage, assertWarning, findPackageJson, hasProp, isDevCheck, isDocker, isObject } from '../utils.js';
|
|
4
4
|
import { assertRollupInput } from './buildConfig.js';
|
|
5
5
|
import { installRequireShim_setUserRootDir } from '@brillout/require-shim';
|
|
6
6
|
import pc from '@brillout/picocolors';
|
|
@@ -9,6 +9,9 @@ import { assertResolveAlias } from './commonConfig/assertResolveAlias.js';
|
|
|
9
9
|
import { getEnvVarObject } from '../shared/getEnvVarObject.js';
|
|
10
10
|
import { isViteCliCall } from '../shared/isViteCliCall.js';
|
|
11
11
|
import { isVikeCliOrApi } from '../../api/context.js';
|
|
12
|
+
import { getVikeConfig2 } from './importUserCode/v1-design/getVikeConfig.js';
|
|
13
|
+
import { assertViteRoot, getViteRoot, normalizeViteRoot } from '../../api/prepareViteApiCall.js';
|
|
14
|
+
import { temp_disablePrerenderAutoRun } from '../../prerender/isPrerenderAutoRunEnabled.js';
|
|
12
15
|
const pluginName = 'vike:commonConfig';
|
|
13
16
|
function commonConfig(vikeVitePluginOptions) {
|
|
14
17
|
return [
|
|
@@ -17,10 +20,19 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
17
20
|
enforce: 'pre',
|
|
18
21
|
config: {
|
|
19
22
|
order: 'pre',
|
|
20
|
-
handler(
|
|
23
|
+
async handler(configFromUser, env) {
|
|
24
|
+
const isDev = isDevCheck(env);
|
|
25
|
+
const operation = env.command === 'build' ? 'build' : env.isPreview ? 'preview' : 'dev';
|
|
26
|
+
const root = configFromUser.root ? normalizeViteRoot(configFromUser.root) : await getViteRoot(operation);
|
|
27
|
+
assert(root);
|
|
28
|
+
const vikeConfig = await getVikeConfig2(root, isDev, vikeVitePluginOptions);
|
|
21
29
|
return {
|
|
22
|
-
_isDev:
|
|
23
|
-
|
|
30
|
+
_isDev: isDev,
|
|
31
|
+
_root: root,
|
|
32
|
+
_vikeVitePluginOptions: vikeVitePluginOptions,
|
|
33
|
+
vike: vikeConfig,
|
|
34
|
+
// TODO/v1-release: remove
|
|
35
|
+
configVikePromise: Promise.resolve(vikeConfig.vikeConfigGlobal)
|
|
24
36
|
};
|
|
25
37
|
}
|
|
26
38
|
}
|
|
@@ -28,6 +40,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
28
40
|
{
|
|
29
41
|
name: pluginName,
|
|
30
42
|
configResolved(config) {
|
|
43
|
+
assertViteRoot(config._root, config);
|
|
31
44
|
assertSingleInstance(config);
|
|
32
45
|
installRequireShim_setUserRootDir(config.root);
|
|
33
46
|
}
|
|
@@ -46,6 +59,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
46
59
|
assertResolveAlias(config);
|
|
47
60
|
assertEsm(config.root);
|
|
48
61
|
assertVikeCliOrApi(config);
|
|
62
|
+
temp_supportOldInterface(config);
|
|
49
63
|
}
|
|
50
64
|
},
|
|
51
65
|
config: {
|
|
@@ -61,7 +75,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
61
75
|
// VITE_CONFIG
|
|
62
76
|
const configFromEnvVar = getEnvVarObject('VITE_CONFIG');
|
|
63
77
|
if (configFromEnvVar)
|
|
64
|
-
configFromVike = mergeConfig(
|
|
78
|
+
configFromVike = mergeConfig(configFromVike, configFromEnvVar);
|
|
65
79
|
return configFromVike;
|
|
66
80
|
}
|
|
67
81
|
}
|
|
@@ -128,3 +142,24 @@ function assertVikeCliOrApi(config) {
|
|
|
128
142
|
onlyOnce: true
|
|
129
143
|
});
|
|
130
144
|
}
|
|
145
|
+
// TODO/v1-release: remove
|
|
146
|
+
function temp_supportOldInterface(config) {
|
|
147
|
+
if (!('vitePluginSsr' in config))
|
|
148
|
+
return;
|
|
149
|
+
assert(isObject(config.vitePluginSsr));
|
|
150
|
+
if (hasProp(config.vitePluginSsr, 'prerender', 'object')) {
|
|
151
|
+
assert(hasProp(config.vitePluginSsr.prerender, 'disableAutoRun', 'boolean'));
|
|
152
|
+
if (config.vitePluginSsr.prerender.disableAutoRun) {
|
|
153
|
+
temp_disablePrerenderAutoRun();
|
|
154
|
+
}
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (hasProp(config.vitePluginSsr, 'disableAutoFullBuild')) {
|
|
158
|
+
if (config.vitePluginSsr.disableAutoFullBuild) {
|
|
159
|
+
assert(config.vitePluginSsr.disableAutoFullBuild === 'prerender');
|
|
160
|
+
temp_disablePrerenderAutoRun();
|
|
161
|
+
}
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
assert(false);
|
|
165
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { getVirtualFileImportUserCode };
|
|
2
2
|
import type { ResolvedConfig } from 'vite';
|
|
3
|
-
import type { VikeConfigGlobal } from './v1-design/getVikeConfig
|
|
3
|
+
import type { VikeConfigGlobal } from './v1-design/getVikeConfig.js';
|
|
4
4
|
declare function getVirtualFileImportUserCode(id: string, options: {
|
|
5
5
|
ssr?: boolean;
|
|
6
6
|
} | undefined, vikeConfigGlobal: VikeConfigGlobal, config: ResolvedConfig, isDev: boolean): Promise<string>;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { configDefinitionsBuiltInGlobal };
|
|
1
|
+
export { configDefinitionsBuiltInAll };
|
|
3
2
|
export type { ConfigDefinition };
|
|
4
3
|
export type { ConfigDefinitions };
|
|
5
4
|
export type { ConfigDefinitionInternal };
|
|
6
|
-
export type { ConfigNameGlobal };
|
|
7
5
|
export type { ConfigEffect };
|
|
8
6
|
import type { ConfigEnvInternal, ConfigEnv, ConfigValueSources, DefinedAtFilePath } from '../../../../../../shared/page-configs/PageConfig.js';
|
|
9
|
-
import type { Config, ConfigNameBuiltIn } from '../../../../../../shared/page-configs/Config.js';
|
|
7
|
+
import type { Config, ConfigNameBuiltIn, ConfigNameGlobal } from '../../../../../../shared/page-configs/Config.js';
|
|
10
8
|
import { type ConfigDefinedAt } from '../../../../../../shared/page-configs/getConfigDefinedAt.js';
|
|
11
9
|
/** The meta definition of a config.
|
|
12
10
|
*
|
|
@@ -46,7 +44,8 @@ type ConfigDefinition = {
|
|
|
46
44
|
*
|
|
47
45
|
* https://vike.dev/extends#inheritance
|
|
48
46
|
*/
|
|
49
|
-
global?: boolean;
|
|
47
|
+
global?: boolean | ((value: unknown) => boolean);
|
|
48
|
+
type?: string | string[];
|
|
50
49
|
};
|
|
51
50
|
/**
|
|
52
51
|
* Function called when the config value is defined.
|
|
@@ -74,7 +73,5 @@ type ConfigDefinitionInternal = Omit<ConfigDefinition, 'env'> & {
|
|
|
74
73
|
};
|
|
75
74
|
type ConfigDefinitions = Record<string, // configName
|
|
76
75
|
ConfigDefinitionInternal>;
|
|
77
|
-
type ConfigDefinitionsBuiltIn = Record<ConfigNameBuiltIn, ConfigDefinitionInternal>;
|
|
78
|
-
declare const
|
|
79
|
-
type ConfigNameGlobal = 'onPrerenderStart' | 'onBeforeRoute' | 'prerender' | 'disableAutoFullBuild' | 'includeAssetsImportedByServer' | 'baseAssets' | 'baseServer' | 'redirects' | 'trailingSlash' | 'disableUrlNormalization';
|
|
80
|
-
declare const configDefinitionsBuiltInGlobal: Record<ConfigNameGlobal, ConfigDefinitionInternal>;
|
|
76
|
+
type ConfigDefinitionsBuiltIn = Record<ConfigNameBuiltIn | ConfigNameGlobal, ConfigDefinitionInternal>;
|
|
77
|
+
declare const configDefinitionsBuiltInAll: ConfigDefinitionsBuiltIn;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { configDefinitionsBuiltInGlobal };
|
|
1
|
+
export { configDefinitionsBuiltInAll };
|
|
3
2
|
import { assert, assertUsage } from '../../../../utils.js';
|
|
4
3
|
import { getConfigDefinedAt } from '../../../../../../shared/page-configs/getConfigDefinedAt.js';
|
|
5
|
-
const
|
|
4
|
+
const configDefinitionsBuiltInAll = {
|
|
6
5
|
onRenderHtml: {
|
|
7
6
|
env: { server: true }
|
|
8
7
|
},
|
|
@@ -61,9 +60,6 @@ const configDefinitionsBuiltIn = {
|
|
|
61
60
|
clientHooks: {
|
|
62
61
|
env: { config: true }
|
|
63
62
|
},
|
|
64
|
-
prerender: {
|
|
65
|
-
env: { config: true }
|
|
66
|
-
},
|
|
67
63
|
hydrationCanBeAborted: {
|
|
68
64
|
env: { client: true }
|
|
69
65
|
},
|
|
@@ -132,27 +128,34 @@ const configDefinitionsBuiltIn = {
|
|
|
132
128
|
env: { client: true }
|
|
133
129
|
},
|
|
134
130
|
// TODO/eventually: define it as a global config.
|
|
135
|
-
middleware: { env: { server: true }, cumulative: true, eager: true }
|
|
136
|
-
};
|
|
137
|
-
const configDefinitionsBuiltInGlobal = {
|
|
131
|
+
middleware: { env: { server: true }, cumulative: true, eager: true },
|
|
138
132
|
onPrerenderStart: {
|
|
139
133
|
env: { server: true, production: true },
|
|
140
|
-
eager: true
|
|
134
|
+
eager: true,
|
|
135
|
+
global: true
|
|
141
136
|
},
|
|
142
137
|
onBeforeRoute: {
|
|
143
138
|
env: { server: true, client: 'if-client-routing' },
|
|
144
|
-
eager: true
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
},
|
|
149
|
-
disableAutoFullBuild: {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
139
|
+
eager: true,
|
|
140
|
+
global: true
|
|
141
|
+
},
|
|
142
|
+
prerender: { env: { config: true }, global: (value) => typeof value !== 'object', type: ['boolean', 'object'] },
|
|
143
|
+
vite: { env: { config: true }, global: true, cumulative: true, type: 'object' },
|
|
144
|
+
disableAutoFullBuild: {
|
|
145
|
+
env: { config: true },
|
|
146
|
+
global: true,
|
|
147
|
+
type: [
|
|
148
|
+
'boolean',
|
|
149
|
+
// Can be 'prerender'
|
|
150
|
+
'string'
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
includeAssetsImportedByServer: { env: { config: true }, global: true, type: 'boolean' },
|
|
154
|
+
baseAssets: { env: { config: true }, global: true, type: 'string' },
|
|
155
|
+
baseServer: { env: { config: true }, global: true, type: 'string' },
|
|
156
|
+
redirects: { env: { server: true }, global: true, type: 'string{}', cumulative: true },
|
|
157
|
+
trailingSlash: { env: { server: true }, global: true, type: 'boolean' },
|
|
158
|
+
disableUrlNormalization: { env: { server: true }, global: true, type: 'boolean' }
|
|
156
159
|
};
|
|
157
160
|
function getConfigEnv(configValueSources, configName) {
|
|
158
161
|
const configValueSource = getConfigValueSource(configValueSources, configName);
|
|
@@ -8,11 +8,13 @@ export { getConfigValueInterfaceFile };
|
|
|
8
8
|
export type { VikeConfigObject };
|
|
9
9
|
export type { InterfaceValueFile };
|
|
10
10
|
export type { InterfaceFile };
|
|
11
|
+
export type { VikeConfigGlobal };
|
|
12
|
+
export type { VikeVitePluginOptions };
|
|
11
13
|
import type { PageConfigGlobalBuildTime, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
12
14
|
import { type LocationId } from './getVikeConfig/filesystemRouting.js';
|
|
13
15
|
import type { ResolvedConfig } from 'vite';
|
|
14
16
|
import type { FilePathResolved } from '../../../../../shared/page-configs/FilePath.js';
|
|
15
|
-
import
|
|
17
|
+
import { getPageConfigUserFriendlyNew } from '../../../../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
16
18
|
type InterfaceFile = InterfaceConfigFile | InterfaceValueFile;
|
|
17
19
|
type InterfaceFileCommons = {
|
|
18
20
|
locationId: LocationId;
|
|
@@ -37,6 +39,7 @@ type VikeConfigObject = {
|
|
|
37
39
|
pageConfigs: PageConfigBuildTime[];
|
|
38
40
|
pageConfigGlobal: PageConfigGlobalBuildTime;
|
|
39
41
|
vikeConfigGlobal: VikeConfigGlobal;
|
|
42
|
+
global: ReturnType<typeof getPageConfigUserFriendlyNew>;
|
|
40
43
|
};
|
|
41
44
|
declare const vikeConfigDependencies: Set<string>;
|
|
42
45
|
declare function reloadVikeConfig(config: ResolvedConfig): void;
|
|
@@ -47,3 +50,95 @@ declare function getVikeConfig2(userRootDir: string, isDev: boolean, vikeVitePlu
|
|
|
47
50
|
declare function isV1Design(config: ResolvedConfig): Promise<boolean>;
|
|
48
51
|
declare function isVikeConfigFile(filePath: string): boolean;
|
|
49
52
|
declare function getConfigValueInterfaceFile(interfaceFile: InterfaceFile, configName: string): unknown;
|
|
53
|
+
type VikeConfigGlobal = {
|
|
54
|
+
prerender: false | {
|
|
55
|
+
noExtraDir: boolean;
|
|
56
|
+
parallel: boolean | number;
|
|
57
|
+
partial: boolean;
|
|
58
|
+
disableAutoRun: boolean;
|
|
59
|
+
};
|
|
60
|
+
disableAutoFullBuild: boolean | 'prerender' | null;
|
|
61
|
+
includeAssetsImportedByServer: boolean;
|
|
62
|
+
baseAssets: string | null;
|
|
63
|
+
baseServer: string | null;
|
|
64
|
+
trailingSlash: boolean;
|
|
65
|
+
disableUrlNormalization: boolean;
|
|
66
|
+
};
|
|
67
|
+
type VikeVitePluginOptions = {
|
|
68
|
+
/**
|
|
69
|
+
* Enable pre-rendering.
|
|
70
|
+
*
|
|
71
|
+
* https://vike.dev/pre-rendering
|
|
72
|
+
*
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
prerender?: boolean | {
|
|
76
|
+
/**
|
|
77
|
+
* Don't create a new directory for each HTML file.
|
|
78
|
+
*
|
|
79
|
+
* For example, generate `dist/client/about.html` instead of `dist/client/about/index.html`.
|
|
80
|
+
*
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
83
|
+
noExtraDir?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Number of concurrent pre-render jobs.
|
|
86
|
+
*
|
|
87
|
+
* Set to `false` to disable concurrency.
|
|
88
|
+
*
|
|
89
|
+
* @default os.cpus().length
|
|
90
|
+
*/
|
|
91
|
+
parallel?: boolean | number;
|
|
92
|
+
/**
|
|
93
|
+
* Allow only some of your pages to be pre-rendered.
|
|
94
|
+
*
|
|
95
|
+
* This setting doesn't affect the pre-rendering process: it merely suppresses the warnings when some of your pages cannot be pre-rendered.
|
|
96
|
+
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
99
|
+
partial?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Disable the automatic initiation of the pre-rendering process when running `$ vike build`.
|
|
102
|
+
*
|
|
103
|
+
* Use this if you want to programmatically initiate the pre-rendering process instead.
|
|
104
|
+
*
|
|
105
|
+
* https://vike.dev/api#prerender
|
|
106
|
+
*
|
|
107
|
+
* @default false
|
|
108
|
+
*/
|
|
109
|
+
disableAutoRun?: boolean;
|
|
110
|
+
};
|
|
111
|
+
/** @deprecated See https://vike.dev/disableAutoFullBuild */
|
|
112
|
+
disableAutoFullBuild?: boolean | 'prerender';
|
|
113
|
+
/** The Base URL of your server.
|
|
114
|
+
*
|
|
115
|
+
* https://vike.dev/base-url
|
|
116
|
+
*/
|
|
117
|
+
baseServer?: string;
|
|
118
|
+
/** The Base URL of your static assets.
|
|
119
|
+
*
|
|
120
|
+
* https://vike.dev/base-url
|
|
121
|
+
*/
|
|
122
|
+
baseAssets?: string;
|
|
123
|
+
/** @deprecated It's now `true` by default. You can remove this option. */
|
|
124
|
+
includeAssetsImportedByServer?: boolean;
|
|
125
|
+
/** Permanent redirections (HTTP status code 301)
|
|
126
|
+
*
|
|
127
|
+
* https://vike.dev/redirects
|
|
128
|
+
*/
|
|
129
|
+
redirects?: Record<string, string>;
|
|
130
|
+
/** Whether URLs should end with a trailing slash.
|
|
131
|
+
*
|
|
132
|
+
* https://vike.dev/url-normalization
|
|
133
|
+
*
|
|
134
|
+
* @default false
|
|
135
|
+
*/
|
|
136
|
+
trailingSlash?: boolean;
|
|
137
|
+
/** Disable automatic URL normalization.
|
|
138
|
+
*
|
|
139
|
+
* https://vike.dev/url-normalization
|
|
140
|
+
*
|
|
141
|
+
* @default false
|
|
142
|
+
*/
|
|
143
|
+
disableUrlNormalization?: boolean;
|
|
144
|
+
};
|