vike 0.4.223 → 0.4.224
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/node/api/build.js +4 -37
- package/dist/cjs/node/api/prepareViteApiCall.js +9 -3
- package/dist/cjs/node/plugin/index.js +8 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -1
- package/dist/cjs/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +130 -52
- package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +145 -0
- package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +52 -0
- package/dist/cjs/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -84
- package/dist/cjs/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
- package/dist/cjs/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
- package/dist/cjs/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +6 -6
- package/dist/cjs/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
- package/dist/cjs/node/plugin/plugins/build.js +21 -0
- package/dist/cjs/node/plugin/plugins/commonConfig.js +22 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -2
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +9 -9
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/cjs/node/plugin/plugins/fileEnv.js +5 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +2 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +16 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +19 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +277 -212
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
- package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/cjs/node/plugin/shared/getOutDirs.js +8 -7
- package/dist/cjs/node/plugin/shared/isViteServerBuild.js +47 -0
- package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +1 -1
- package/dist/cjs/node/plugin/utils.js +1 -0
- package/dist/cjs/node/prerender/context.js +3 -8
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +23 -21
- package/dist/cjs/node/prerender/runPrerender.js +28 -28
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +7 -1
- package/dist/cjs/shared/getPageContextUrlComputed.js +1 -1
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +2 -5
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +3 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +20 -9
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/findFile.js +1 -1
- package/dist/cjs/utils/findPackageJson.js +1 -1
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +10 -4
- package/dist/cjs/utils/path.js +1 -0
- package/dist/cjs/utils/requireResolve.js +11 -4
- package/dist/cjs/utils/sorter.js +0 -3
- package/dist/esm/client/client-routing-runtime/index.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/index.js +1 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +10 -1
- package/dist/esm/node/api/build.js +4 -4
- package/dist/esm/node/api/prepareViteApiCall.js +9 -3
- package/dist/esm/node/plugin/index.d.ts +2 -1
- package/dist/esm/node/plugin/index.js +4 -17
- package/dist/esm/node/plugin/plugins/baseUrls.js +3 -1
- package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.d.ts +18 -0
- package/dist/esm/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +131 -53
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +140 -0
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +50 -0
- package/dist/esm/node/plugin/plugins/{buildConfig.d.ts → build/pluginBuildConfig.d.ts} +3 -3
- package/dist/esm/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -81
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
- package/dist/esm/node/plugin/plugins/build/pluginDistFileNames.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
- package/dist/esm/node/plugin/plugins/build/pluginDistPackageJsonFile.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +7 -6
- package/dist/esm/node/plugin/plugins/build/pluginSuppressRollupWarning.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
- package/dist/esm/node/plugin/plugins/build.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/build.js +19 -0
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +15 -6
- package/dist/esm/node/plugin/plugins/commonConfig.js +22 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/esm/node/plugin/plugins/envVars.js +2 -2
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +10 -10
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/esm/node/plugin/plugins/fileEnv.js +5 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +2 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +13 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +0 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +20 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +279 -214
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
- package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +1 -3
- package/dist/esm/node/plugin/shared/getOutDirs.d.ts +2 -2
- package/dist/esm/node/plugin/shared/getOutDirs.js +8 -7
- package/dist/esm/node/plugin/shared/isViteServerBuild.d.ts +15 -0
- package/dist/esm/node/plugin/shared/isViteServerBuild.js +45 -0
- package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +1 -1
- package/dist/esm/node/plugin/utils.d.ts +1 -0
- package/dist/esm/node/plugin/utils.js +1 -0
- package/dist/esm/node/prerender/context.d.ts +0 -2
- package/dist/esm/node/prerender/context.js +4 -9
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +10 -6
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +24 -22
- package/dist/esm/node/prerender/runPrerender.d.ts +7 -25
- package/dist/esm/node/prerender/runPrerender.js +29 -29
- 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 +2 -1
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +7 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +165 -5
- package/dist/esm/shared/getPageContextUrlComputed.js +1 -1
- package/dist/esm/shared/page-configs/Config.d.ts +12 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +5 -5
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +2 -5
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +3 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +20 -9
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/findFile.js +1 -1
- package/dist/esm/utils/findPackageJson.js +1 -1
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +8 -2
- package/dist/esm/utils/path.js +1 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +11 -4
- package/dist/esm/utils/sorter.d.ts +18 -5
- package/dist/esm/utils/sorter.js +0 -3
- package/package.json +8 -16
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +0 -119
- package/dist/cjs/node/plugin/plugins/buildApp.js +0 -76
- package/dist/cjs/node/plugin/plugins/removeRequireHookPlugin.js +0 -17
- package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +0 -20
- package/dist/cjs/node/plugin/shared/viteIsSSR.js +0 -31
- package/dist/esm/node/plugin/plugins/autoFullBuild.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +0 -114
- package/dist/esm/node/plugin/plugins/buildApp.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/buildApp.js +0 -74
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -20
- package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +0 -8
- package/dist/esm/node/plugin/plugins/distFileNames.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/packageJsonFile.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.js +0 -15
- package/dist/esm/node/plugin/plugins/suppressRollupWarning.d.ts +0 -3
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +0 -2
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +0 -17
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +0 -11
- package/dist/esm/node/plugin/shared/viteIsSSR.js +0 -29
- package/dist-cjs-fixup.mjs +0 -41
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
export { pluginAutoFullBuild };
|
|
2
|
+
export { isPrerenderForceExit };
|
|
3
|
+
import { build } from 'vite';
|
|
4
|
+
import { assert, assertIsSingleModuleInstance, assertWarning, onSetupBuild } from '../../utils.js';
|
|
5
|
+
import { runPrerenderFromAutoRun, runPrerender_forceExit } from '../../../prerender/runPrerender.js';
|
|
6
|
+
import { isPrerenderAutoRunEnabled } from '../../../prerender/context.js';
|
|
7
|
+
import { isViteCliCall, getViteConfigFromCli } from '../../shared/isViteCliCall.js';
|
|
8
|
+
import pc from '@brillout/picocolors';
|
|
9
|
+
import { logErrorHint } from '../../../runtime/renderPage/logErrorHint.js';
|
|
10
|
+
import { manifestTempFile } from './pluginBuildConfig.js';
|
|
11
|
+
import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
12
|
+
import { isVikeCliOrApi } from '../../../api/context.js';
|
|
13
|
+
import { handleAssetsManifest, handleAssetsManifest_assertUsageCssTarget } from './handleAssetsManifest.js';
|
|
14
|
+
import { isViteClientBuild, isViteServerBuild_onlySsrEnv } from '../../shared/isViteServerBuild.js';
|
|
15
|
+
assertIsSingleModuleInstance('build/pluginAutoFullBuild.ts');
|
|
16
|
+
let forceExit = false;
|
|
17
|
+
function pluginAutoFullBuild() {
|
|
18
|
+
let config;
|
|
19
|
+
let vikeConfig;
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
name: 'vike:build:pluginAutoFullBuild',
|
|
23
|
+
apply: 'build',
|
|
24
|
+
enforce: 'pre',
|
|
25
|
+
async configResolved(config_) {
|
|
26
|
+
vikeConfig = await getVikeConfig(config_);
|
|
27
|
+
config = config_;
|
|
28
|
+
abortViteBuildSsr(vikeConfig);
|
|
29
|
+
},
|
|
30
|
+
writeBundle: {
|
|
31
|
+
/* We can't use this because it breaks Vite's logging. TODO/eventually: try again with latest Vite version.
|
|
32
|
+
sequential: true,
|
|
33
|
+
order: 'pre',
|
|
34
|
+
*/
|
|
35
|
+
async handler(options, bundle) {
|
|
36
|
+
await handleAssetsManifest(config, this.environment, options, bundle);
|
|
37
|
+
await triggerFullBuild(config, vikeConfig, this.environment, bundle);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'vike:build:pluginAutoFullBuild:forceExit',
|
|
43
|
+
apply: 'build',
|
|
44
|
+
enforce: 'post',
|
|
45
|
+
closeBundle: {
|
|
46
|
+
sequential: true,
|
|
47
|
+
order: 'post',
|
|
48
|
+
handler() {
|
|
49
|
+
onSetupBuild();
|
|
50
|
+
handleAssetsManifest_assertUsageCssTarget(config);
|
|
51
|
+
if (forceExit &&
|
|
52
|
+
// Let vike:build:pluginBuildApp force exit
|
|
53
|
+
!vikeConfig.global.config.vite6BuilderApp) {
|
|
54
|
+
runPrerender_forceExit();
|
|
55
|
+
assert(false);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
async function triggerFullBuild(config, vikeConfig, viteEnv, bundle) {
|
|
63
|
+
// Whether builder.buildApp() is being used, see plugin:build:pluginBuildApp
|
|
64
|
+
const isBuilderApp = vikeConfig.global.config.vite6BuilderApp;
|
|
65
|
+
// If builder.buildApp() => trigger at end of `this.environment.name === 'ssr'`.
|
|
66
|
+
// Else => trigger at end of client-side build.
|
|
67
|
+
if (isBuilderApp ? !isViteServerBuild_onlySsrEnv(config, viteEnv) : !isViteClientBuild(config, viteEnv))
|
|
68
|
+
return;
|
|
69
|
+
if (isEntirelyDisabled(vikeConfig))
|
|
70
|
+
return;
|
|
71
|
+
// Workaround for @vitejs/plugin-legacy
|
|
72
|
+
// - The legacy plugin triggers its own Rollup build for the client-side.
|
|
73
|
+
// - The legacy plugin doesn't generate a manifest => we can use that to detect the legacy plugin build.
|
|
74
|
+
// - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
|
|
75
|
+
if (!bundle[manifestTempFile])
|
|
76
|
+
return;
|
|
77
|
+
const configInline = getFullBuildInlineConfig(config);
|
|
78
|
+
if (!isBuilderApp) {
|
|
79
|
+
try {
|
|
80
|
+
await build(setSSR(configInline));
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
84
|
+
console.error(err);
|
|
85
|
+
logErrorHint(err);
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// The server bulid is already called by builder.buildApp()
|
|
91
|
+
}
|
|
92
|
+
if (isPrerenderAutoRunEnabled(vikeConfig)) {
|
|
93
|
+
const res = await runPrerenderFromAutoRun(configInline, config);
|
|
94
|
+
forceExit = res.forceExit;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function setSSR(configInline) {
|
|
98
|
+
return {
|
|
99
|
+
...configInline,
|
|
100
|
+
build: {
|
|
101
|
+
...configInline.build,
|
|
102
|
+
ssr: true
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function abortViteBuildSsr(vikeConfig) {
|
|
107
|
+
if (vikeConfig.global.config.disableAutoFullBuild !== true && isViteCliCall() && getViteConfigFromCli()?.build.ssr) {
|
|
108
|
+
assertWarning(false, `The CLI call ${pc.cyan('$ vite build --ssr')} is superfluous since ${pc.cyan('$ vite build')} also builds the server-side. If you want two separate build steps then use https://vike.dev/disableAutoFullBuild or use Vite's ${pc.cyan('build()')} API.`, { onlyOnce: true });
|
|
109
|
+
process.exit(0);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function isEntirelyDisabled(vikeConfig) {
|
|
113
|
+
const { disableAutoFullBuild } = vikeConfig.global.config;
|
|
114
|
+
if (disableAutoFullBuild === undefined || disableAutoFullBuild === 'prerender') {
|
|
115
|
+
const isUserUsingViteApi = !isViteCliCall() && !isVikeCliOrApi();
|
|
116
|
+
return isUserUsingViteApi;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return disableAutoFullBuild;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function isPrerenderForceExit() {
|
|
123
|
+
return forceExit;
|
|
124
|
+
}
|
|
125
|
+
function getFullBuildInlineConfig(config) {
|
|
126
|
+
const configFromCli = !isViteCliCall() ? null : getViteConfigFromCli();
|
|
127
|
+
if (config._viteConfigEnhanced) {
|
|
128
|
+
return config._viteConfigEnhanced;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return {
|
|
132
|
+
...configFromCli,
|
|
133
|
+
configFile: configFromCli?.configFile || config.configFile,
|
|
134
|
+
root: config.root,
|
|
135
|
+
build: {
|
|
136
|
+
...configFromCli?.build
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export { pluginBuildApp };
|
|
2
|
+
import { runPrerender_forceExit } from '../../../prerender/runPrerender.js';
|
|
3
|
+
import { resolveOutDir } from '../../shared/getOutDirs.js';
|
|
4
|
+
import { assert } from '../../utils.js';
|
|
5
|
+
import { getVikeConfigPublic } from '../commonConfig.js';
|
|
6
|
+
import { isPrerenderForceExit } from './pluginAutoFullBuild.js';
|
|
7
|
+
function pluginBuildApp() {
|
|
8
|
+
return [
|
|
9
|
+
{
|
|
10
|
+
name: 'vike:build:pluginBuildApp',
|
|
11
|
+
apply: 'build',
|
|
12
|
+
config(config) {
|
|
13
|
+
const vike = getVikeConfigPublic(config);
|
|
14
|
+
if (!vike.config.vite6BuilderApp)
|
|
15
|
+
return;
|
|
16
|
+
return {
|
|
17
|
+
builder: {
|
|
18
|
+
// Can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
|
|
19
|
+
async buildApp(builder) {
|
|
20
|
+
assert(builder.environments.client);
|
|
21
|
+
assert(builder.environments.ssr);
|
|
22
|
+
await builder.build(builder.environments.client);
|
|
23
|
+
await builder.build(builder.environments.ssr);
|
|
24
|
+
if (isPrerenderForceExit()) {
|
|
25
|
+
runPrerender_forceExit();
|
|
26
|
+
assert(false);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
environments: {
|
|
31
|
+
ssr: {
|
|
32
|
+
consumer: 'server',
|
|
33
|
+
build: {
|
|
34
|
+
outDir: resolveOutDir(config, true),
|
|
35
|
+
ssr: true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
client: {
|
|
39
|
+
consumer: 'client',
|
|
40
|
+
build: {
|
|
41
|
+
copyPublicDir: true,
|
|
42
|
+
ssr: false
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
];
|
|
50
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { pluginBuildConfig };
|
|
2
2
|
export { assertRollupInput };
|
|
3
3
|
export { analyzeClientEntries };
|
|
4
4
|
export { manifestTempFile };
|
|
5
5
|
import type { ResolvedConfig, Plugin } from 'vite';
|
|
6
|
-
import type { PageConfigBuildTime } from '
|
|
6
|
+
import type { PageConfigBuildTime } from '../../../../shared/page-configs/PageConfig.js';
|
|
7
7
|
declare const manifestTempFile = "_temp_manifest.json";
|
|
8
|
-
declare function
|
|
8
|
+
declare function pluginBuildConfig(): Plugin[];
|
|
9
9
|
declare function analyzeClientEntries(pageConfigs: PageConfigBuildTime[], config: ResolvedConfig): {
|
|
10
10
|
hasClientRouting: boolean;
|
|
11
11
|
hasServerRouting: boolean;
|
|
@@ -1,56 +1,41 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { pluginBuildConfig };
|
|
2
2
|
export { assertRollupInput };
|
|
3
3
|
export { analyzeClientEntries };
|
|
4
4
|
export { manifestTempFile };
|
|
5
|
-
import { assert, addOnBeforeLogHook, removeFileExtention, unique, assertUsage, injectRollupInputs, normalizeRollupInput, onSetupBuild, assertIsNpmPackageImport } from '
|
|
6
|
-
import { getVikeConfig
|
|
7
|
-
import { findPageFiles } from '
|
|
8
|
-
import { getVirtualFileIdPageConfigValuesAll } from '
|
|
9
|
-
import { extractAssetsAddQuery } from '
|
|
5
|
+
import { assert, addOnBeforeLogHook, removeFileExtention, unique, assertUsage, injectRollupInputs, normalizeRollupInput, onSetupBuild, assertIsNpmPackageImport } from '../../utils.js';
|
|
6
|
+
import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
7
|
+
import { findPageFiles } from '../../shared/findPageFiles.js';
|
|
8
|
+
import { getVirtualFileIdPageConfigValuesAll } from '../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
|
|
9
|
+
import { extractAssetsAddQuery } from '../../../shared/extractAssetsQuery.js';
|
|
10
10
|
import { createRequire } from 'module';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import { getOutDirs, resolveOutDir } from '../shared/getOutDirs.js';
|
|
19
|
-
import { viteIsSSR } from '../shared/viteIsSSR.js';
|
|
20
|
-
// @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
|
|
11
|
+
import { prependEntriesDir } from '../../../shared/prependEntriesDir.js';
|
|
12
|
+
import { getFilePathResolved } from '../../shared/getFilePath.js';
|
|
13
|
+
import { getConfigValueBuildTime } from '../../../../shared/page-configs/getConfigValueBuildTime.js';
|
|
14
|
+
import { isViteServerBuild } from '../../shared/isViteServerBuild.js';
|
|
15
|
+
import { resolveOutDir } from '../../shared/getOutDirs.js';
|
|
16
|
+
import { handleAssetsManifest_assertUsageCssCodeSplit, handleAssetsManifest_getBuildConfig } from './handleAssetsManifest.js';
|
|
17
|
+
// @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
21
18
|
const importMetaUrl = import.meta.url;
|
|
22
19
|
const require_ = createRequire(importMetaUrl);
|
|
23
20
|
const manifestTempFile = '_temp_manifest.json';
|
|
24
|
-
function
|
|
25
|
-
let isServerAssetsFixEnabled;
|
|
26
|
-
let outDirs;
|
|
21
|
+
function pluginBuildConfig() {
|
|
27
22
|
let config;
|
|
28
23
|
return [
|
|
29
24
|
{
|
|
30
|
-
name: 'vike:
|
|
25
|
+
name: 'vike:build:pluginBuildConfig',
|
|
31
26
|
apply: 'build',
|
|
32
27
|
enforce: 'post',
|
|
33
28
|
configResolved: {
|
|
34
29
|
order: 'post',
|
|
35
30
|
async handler(config_) {
|
|
36
|
-
config = config_;
|
|
37
31
|
onSetupBuild();
|
|
32
|
+
config = config_;
|
|
38
33
|
assertRollupInput(config);
|
|
39
34
|
const entries = await getEntries(config);
|
|
40
35
|
assert(Object.keys(entries).length > 0);
|
|
41
36
|
config.build.rollupOptions.input = injectRollupInputs(entries, config);
|
|
42
37
|
addLogHook();
|
|
43
|
-
|
|
44
|
-
{
|
|
45
|
-
isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (await isV1Design(config));
|
|
46
|
-
if (isServerAssetsFixEnabled) {
|
|
47
|
-
// https://github.com/vikejs/vike/issues/1339
|
|
48
|
-
config.build.ssrEmitAssets = true;
|
|
49
|
-
// Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
|
|
50
|
-
config.build.cssMinify = 'esbuild';
|
|
51
|
-
fixServerAssets_assertCssCodeSplit(config);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
38
|
+
handleAssetsManifest_assertUsageCssCodeSplit(config);
|
|
54
39
|
}
|
|
55
40
|
},
|
|
56
41
|
config: {
|
|
@@ -60,56 +45,13 @@ function buildConfig() {
|
|
|
60
45
|
return {
|
|
61
46
|
build: {
|
|
62
47
|
outDir: resolveOutDir(config),
|
|
63
|
-
|
|
64
|
-
copyPublicDir: config.vike.config.viteEnvironmentAPI
|
|
65
|
-
? // Already set by buildApp() plugin
|
|
66
|
-
undefined
|
|
67
|
-
: !viteIsSSR(config)
|
|
48
|
+
...handleAssetsManifest_getBuildConfig(config)
|
|
68
49
|
}
|
|
69
50
|
};
|
|
70
51
|
}
|
|
71
52
|
},
|
|
72
53
|
buildStart() {
|
|
73
54
|
onSetupBuild();
|
|
74
|
-
},
|
|
75
|
-
async closeBundle() {
|
|
76
|
-
onSetupBuild();
|
|
77
|
-
await fixServerAssets_assertCssTarget(config);
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: 'vike:buildConfig:pre',
|
|
82
|
-
apply: 'build',
|
|
83
|
-
applyToEnvironment(env) {
|
|
84
|
-
return env.name === 'ssr';
|
|
85
|
-
},
|
|
86
|
-
// Make sure other writeBundle() hooks are called after this writeBundle() hook.
|
|
87
|
-
// - set_ASSETS_MANIFEST() needs to be called before dist/server/ code is executed.
|
|
88
|
-
// - For example, the writeBundle() hook of vite-plugin-vercel needs to be called after this writeBundle() hook, otherwise: https://github.com/vikejs/vike/issues/1527
|
|
89
|
-
enforce: 'pre',
|
|
90
|
-
writeBundle: {
|
|
91
|
-
order: 'pre',
|
|
92
|
-
sequential: true,
|
|
93
|
-
async handler(options, bundle) {
|
|
94
|
-
if (viteIsSSR(config)) {
|
|
95
|
-
// Ideally we'd move dist/_temp_manifest.json to dist/server/client-assets.json instead of dist/assets.json
|
|
96
|
-
// - But we can't because there is no guarentee whether dist/server/ is generated before or after dist/client/ (generating dist/server/ after dist/client/ erases dist/server/client-assets.json)
|
|
97
|
-
// - We'll able to do so once we replace `$ vite build` with `$ vike build`
|
|
98
|
-
const assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
99
|
-
const clientManifestFilePath = path.posix.join(outDirs.outDirClient, manifestTempFile);
|
|
100
|
-
const serverManifestFilePath = path.posix.join(outDirs.outDirServer, manifestTempFile);
|
|
101
|
-
if (!isServerAssetsFixEnabled) {
|
|
102
|
-
await fs.copyFile(clientManifestFilePath, assetsJsonFilePath);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
const { clientManifestMod } = await fixServerAssets(config);
|
|
106
|
-
await fs.writeFile(assetsJsonFilePath, JSON.stringify(clientManifestMod, null, 2), 'utf-8');
|
|
107
|
-
}
|
|
108
|
-
await fs.rm(clientManifestFilePath);
|
|
109
|
-
await fs.rm(serverManifestFilePath);
|
|
110
|
-
await set_ASSETS_MANIFEST(options, bundle);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
55
|
}
|
|
114
56
|
}
|
|
115
57
|
];
|
|
@@ -122,10 +64,9 @@ async function getEntries(config) {
|
|
|
122
64
|
// TODO/now: add meta.default
|
|
123
65
|
vikeConfig.global.config.includeAssetsImportedByServer ?? true);
|
|
124
66
|
assertUsage(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
|
|
125
|
-
if (
|
|
67
|
+
if (isViteServerBuild(config)) {
|
|
126
68
|
const pageEntries = getPageEntries(pageConfigs);
|
|
127
69
|
const entries = {
|
|
128
|
-
// buildEntry: resolve('dist/esm/node/buildEntry.js'), // TODO/next-major-release: remove
|
|
129
70
|
...pageFileEntries,
|
|
130
71
|
// Ensure Rollup generates a bundle per page: https://github.com/vikejs/vike/issues/349#issuecomment-1166247275
|
|
131
72
|
...pageEntries
|
|
@@ -196,7 +137,7 @@ function analyzeClientEntries(pageConfigs, config) {
|
|
|
196
137
|
// Ensure Rollup creates entries for each page file, see https://github.com/vikejs/vike/issues/350
|
|
197
138
|
// (Otherwise the page files may be missing in the client manifest.json)
|
|
198
139
|
async function getPageFileEntries(config, includeAssetsImportedByServer) {
|
|
199
|
-
const isForClientSide = !
|
|
140
|
+
const isForClientSide = !isViteServerBuild(config);
|
|
200
141
|
const fileTypes = isForClientSide ? ['.page', '.page.client'] : ['.page', '.page.server'];
|
|
201
142
|
if (isForClientSide && includeAssetsImportedByServer) {
|
|
202
143
|
fileTypes.push('.page.server');
|
|
@@ -255,8 +196,8 @@ function getEntryFromPageConfig(pageConfig, isForClientSide) {
|
|
|
255
196
|
}
|
|
256
197
|
function resolve(filePath) {
|
|
257
198
|
assert(filePath.startsWith('dist/'));
|
|
258
|
-
// [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/
|
|
259
|
-
return require_.resolve(
|
|
199
|
+
// [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/build/
|
|
200
|
+
return require_.resolve(`../../../../../../${filePath}`);
|
|
260
201
|
}
|
|
261
202
|
function addLogHook() {
|
|
262
203
|
const tty = process.stdout.isTTY && !process.env.CI; // Equals https://github.com/vitejs/vite/blob/193d55c7b9cbfec5b79ebfca276d4a721e7de14d/packages/vite/src/node/plugins/reporter.ts#L27
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { pluginBuildEntry };
|
|
2
|
+
export { set_macro_ASSETS_MANIFEST };
|
|
3
|
+
import type { Plugin, Rollup } from 'vite';
|
|
4
|
+
type Bundle = Rollup.OutputBundle;
|
|
5
|
+
type Options = Rollup.NormalizedOutputOptions;
|
|
6
|
+
declare function pluginBuildEntry(): Plugin[];
|
|
7
|
+
declare function set_macro_ASSETS_MANIFEST(options: Options, bundle: Bundle, assetsJsonFilePath: string): Promise<void>;
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { pluginBuildEntry };
|
|
2
|
+
export { set_macro_ASSETS_MANIFEST };
|
|
3
3
|
import { serverProductionEntryPlugin } from '@brillout/vite-plugin-server-entry/plugin';
|
|
4
4
|
import { virtualFileIdImportUserCodeServer } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
|
|
5
5
|
import { assert, projectInfo, toPosixPath } from '../../utils.js';
|
|
6
6
|
import fs from 'fs/promises';
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import { createRequire } from 'module';
|
|
9
|
-
// @ts-ignore
|
|
9
|
+
// @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
10
10
|
const importMetaUrl = import.meta.url;
|
|
11
11
|
const require_ = createRequire(importMetaUrl);
|
|
12
12
|
import { isUsingClientRouter } from '../extractExportNamesPlugin.js';
|
|
13
13
|
import { assertBuildInfo, getViteConfigRuntime } from '../../../runtime/globalContext.js';
|
|
14
14
|
import { getOutDirs } from '../../shared/getOutDirs.js';
|
|
15
15
|
const ASSETS_MANIFEST = '__VITE_ASSETS_MANIFEST__';
|
|
16
|
-
function
|
|
16
|
+
function pluginBuildEntry() {
|
|
17
17
|
let config;
|
|
18
18
|
return [
|
|
19
19
|
{
|
|
20
|
-
name: 'vike:
|
|
20
|
+
name: 'vike:build:pluginBuildEntry',
|
|
21
|
+
apply: 'build',
|
|
21
22
|
enforce: 'post',
|
|
22
23
|
async configResolved(config_) {
|
|
23
24
|
config = config_;
|
|
@@ -58,13 +59,12 @@ function getServerProductionEntryCode(config) {
|
|
|
58
59
|
].join('\n');
|
|
59
60
|
return importerCode;
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
async function
|
|
62
|
+
// Set the value of the ASSETS_MANIFEST constant inside dist/server/entry.js (or dist/server/index.js)
|
|
63
|
+
async function set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath) {
|
|
63
64
|
const { dir } = options;
|
|
64
65
|
assert(dir);
|
|
65
66
|
const chunkPath = find_ASSETS_MANIFEST(bundle);
|
|
66
67
|
const chunkFilePath = path.join(dir, chunkPath);
|
|
67
|
-
const assetsJsonFilePath = path.join(dir, '..', 'assets.json');
|
|
68
68
|
const [assetsJsonString, chunkFileContent] = await Promise.all([
|
|
69
69
|
await fs.readFile(assetsJsonFilePath, 'utf8'),
|
|
70
70
|
await fs.readFile(chunkFilePath, 'utf8')
|
|
@@ -88,7 +88,7 @@ function find_ASSETS_MANIFEST(bundle) {
|
|
|
88
88
|
function getImportPath(config) {
|
|
89
89
|
// We resolve filePathAbsolute even if we don't use it: we use require.resolve() as an assertion that the relative path is correct
|
|
90
90
|
const filePathAbsolute = toPosixPath(
|
|
91
|
-
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/
|
|
91
|
+
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/pluginBuildEntry/index.js
|
|
92
92
|
require_.resolve(`../../../../../../dist/esm/__internal/index.js`));
|
|
93
93
|
if (
|
|
94
94
|
// 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)
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { pluginDistFileNames };
|
|
2
2
|
// Attempt to preserve file structure of `.page.js` files:
|
|
3
3
|
// - https://github.com/vikejs/vike/commit/11a4c49e5403aa7c37c8020c462b499425b41854
|
|
4
4
|
// - Blocker: https://github.com/rollup/rollup/issues/4724
|
|
5
|
-
import { assertPosixPath, assert, assertUsage, isArray, isCallable } from '
|
|
5
|
+
import { assertPosixPath, assert, assertUsage, isArray, isCallable } from '../../utils.js';
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import crypto from 'crypto';
|
|
8
|
-
import { getAssetsDir } from '
|
|
9
|
-
import { assertModuleId, getModuleFilePathAbsolute } from '
|
|
10
|
-
function
|
|
8
|
+
import { getAssetsDir } from '../../shared/getAssetsDir.js';
|
|
9
|
+
import { assertModuleId, getModuleFilePathAbsolute } from '../../shared/getFilePath.js';
|
|
10
|
+
function pluginDistFileNames() {
|
|
11
11
|
return {
|
|
12
|
-
name: 'vike:
|
|
12
|
+
name: 'vike:build:pluginDistFileNames',
|
|
13
13
|
apply: 'build',
|
|
14
14
|
enforce: 'post',
|
|
15
15
|
configResolved(config) {
|
|
@@ -28,7 +28,7 @@ function distFileNames() {
|
|
|
28
28
|
else {
|
|
29
29
|
// If a user needs this:
|
|
30
30
|
// - assertUsage() that the naming provided by the user ends with `.[hash][extname]`
|
|
31
|
-
// - It's needed for getHash() of
|
|
31
|
+
// - It's needed for getHash() of handleAssetsManifest()
|
|
32
32
|
// - Asset URLs should always contain a hash: it's paramount for caching assets.
|
|
33
33
|
// - If rollupOutput.assetFileNames is a function then use a wrapper function to apply the assertUsage()
|
|
34
34
|
assertUsage(false, "Setting Vite's configuration build.rollupOptions.output.assetFileNames is currently forbidden. Reach out if you need to use.");
|
package/dist/esm/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js}
RENAMED
|
@@ -6,19 +6,20 @@
|
|
|
6
6
|
* require() of dist/server/pageFiles.js from node_modules/vike/dist/esm/node/runtime/page-files/setup.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
|
|
7
7
|
* Reproduction: https://github.com/brillout/vite-plugin-ssr-server-import-syntax
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
|
|
9
|
+
// TODO/refactor: prefix all other plugins with `plugin` as well?
|
|
10
|
+
export { pluginDistPackageJsonFile };
|
|
11
|
+
import { rollupIsEsm } from '../../shared/rollupIsEsm.js';
|
|
12
|
+
import { isViteServerBuild } from '../../shared/isViteServerBuild.js';
|
|
13
|
+
function pluginDistPackageJsonFile() {
|
|
13
14
|
let config;
|
|
14
15
|
return {
|
|
15
|
-
name: 'vike:
|
|
16
|
+
name: 'vike:build:pluginDistPackageJsonFile',
|
|
16
17
|
apply: 'build',
|
|
17
18
|
configResolved(config_) {
|
|
18
19
|
config = config_;
|
|
19
20
|
},
|
|
20
21
|
generateBundle(options, bundle) {
|
|
21
|
-
if (!
|
|
22
|
+
if (!isViteServerBuild(config))
|
|
22
23
|
return;
|
|
23
24
|
const isEsm = rollupIsEsm(options);
|
|
24
25
|
const fileName = 'package.json';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Suppress Rollup warnings `Generated an empty chunk: "index.page.server"`
|
|
2
|
-
export {
|
|
3
|
-
function
|
|
2
|
+
export { pluginSuppressRollupWarning };
|
|
3
|
+
function pluginSuppressRollupWarning() {
|
|
4
4
|
return {
|
|
5
|
-
name: 'vike:
|
|
5
|
+
name: 'vike:build:pluginSuppressRollupWarning',
|
|
6
6
|
apply: 'build',
|
|
7
7
|
enforce: 'post',
|
|
8
8
|
async configResolved(config) {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { build };
|
|
2
|
+
import { pluginBuildApp } from './build/pluginBuildApp.js';
|
|
3
|
+
import { pluginDistPackageJsonFile } from './build/pluginDistPackageJsonFile.js';
|
|
4
|
+
import { pluginSuppressRollupWarning } from './build/pluginSuppressRollupWarning.js';
|
|
5
|
+
import { pluginDistFileNames } from './build/pluginDistFileNames.js';
|
|
6
|
+
import { pluginAutoFullBuild } from './build/pluginAutoFullBuild.js';
|
|
7
|
+
import { pluginBuildEntry } from './build/pluginBuildEntry.js';
|
|
8
|
+
import { pluginBuildConfig } from './build/pluginBuildConfig.js';
|
|
9
|
+
function build() {
|
|
10
|
+
return [
|
|
11
|
+
...pluginBuildConfig(),
|
|
12
|
+
...pluginBuildApp(),
|
|
13
|
+
...pluginAutoFullBuild(),
|
|
14
|
+
...pluginBuildEntry(),
|
|
15
|
+
pluginDistPackageJsonFile(),
|
|
16
|
+
pluginSuppressRollupWarning(),
|
|
17
|
+
pluginDistFileNames()
|
|
18
|
+
];
|
|
19
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { commonConfig };
|
|
2
|
-
|
|
2
|
+
export { getVikeConfigPublic };
|
|
3
|
+
import { type InlineConfig, type Plugin, type ResolvedConfig, type UserConfig } from 'vite';
|
|
3
4
|
import { type VikeConfigObject } from './importUserCode/v1-design/getVikeConfig.js';
|
|
4
5
|
import type { PrerenderContextPublic } from '../../prerender/runPrerender.js';
|
|
5
6
|
declare module 'vite' {
|
|
@@ -9,11 +10,19 @@ declare module 'vite' {
|
|
|
9
10
|
_root?: string;
|
|
10
11
|
_baseViteOriginal?: string;
|
|
11
12
|
_viteConfigEnhanced?: InlineConfig;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
pages: VikeConfigObject['pages'];
|
|
15
|
-
prerenderContext?: PrerenderContextPublic;
|
|
16
|
-
};
|
|
13
|
+
_vike?: VikeConfigPublic;
|
|
14
|
+
_vikeConfigObject?: VikeConfigObject;
|
|
17
15
|
}
|
|
18
16
|
}
|
|
17
|
+
type VikeConfigPublic = {
|
|
18
|
+
config: VikeConfigObject['global']['config'];
|
|
19
|
+
pages: VikeConfigObject['pages'];
|
|
20
|
+
prerenderContext?: PrerenderContextPublic;
|
|
21
|
+
};
|
|
19
22
|
declare function commonConfig(vikeVitePluginOptions: unknown): Plugin[];
|
|
23
|
+
/**
|
|
24
|
+
* Get all the information Vike knows about the app in your Vite plugin.
|
|
25
|
+
*
|
|
26
|
+
* https://vike.dev/getVikeConfig
|
|
27
|
+
*/
|
|
28
|
+
declare function getVikeConfigPublic(config: ResolvedConfig | UserConfig): VikeConfigPublic;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { commonConfig };
|
|
2
|
+
export { getVikeConfigPublic };
|
|
2
3
|
import { mergeConfig } from 'vite';
|
|
3
4
|
import { assert, assertUsage, assertWarning, findPackageJson, hasProp, isDevCheck, isDocker, isObject } from '../utils.js';
|
|
4
|
-
import { assertRollupInput } from './
|
|
5
|
+
import { assertRollupInput } from './build/pluginBuildConfig.js';
|
|
5
6
|
import { installRequireShim_setUserRootDir } from '@brillout/require-shim';
|
|
6
7
|
import pc from '@brillout/picocolors';
|
|
7
8
|
import path from 'path';
|
|
@@ -11,7 +12,8 @@ import { isViteCliCall } from '../shared/isViteCliCall.js';
|
|
|
11
12
|
import { isVikeCliOrApi } from '../../api/context.js';
|
|
12
13
|
import { getVikeConfig2 } from './importUserCode/v1-design/getVikeConfig.js';
|
|
13
14
|
import { assertViteRoot, getViteRoot, normalizeViteRoot } from '../../api/prepareViteApiCall.js';
|
|
14
|
-
import {
|
|
15
|
+
import { temp_disablePrerenderAutoRun } from '../../prerender/context.js';
|
|
16
|
+
import { resolvePrerenderConfigGlobal } from '../../prerender/resolvePrerenderConfig.js';
|
|
15
17
|
const pluginName = 'vike:commonConfig';
|
|
16
18
|
function commonConfig(vikeVitePluginOptions) {
|
|
17
19
|
return [
|
|
@@ -30,13 +32,14 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
30
32
|
_isDev: isDev,
|
|
31
33
|
_root: root,
|
|
32
34
|
_vikeVitePluginOptions: vikeVitePluginOptions,
|
|
33
|
-
|
|
35
|
+
_vikeConfigObject: vikeConfig,
|
|
36
|
+
_vike: {
|
|
34
37
|
pages: vikeConfig.pages,
|
|
35
38
|
config: vikeConfig.global.config
|
|
36
39
|
},
|
|
37
40
|
// TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
|
|
38
41
|
configVikePromise: Promise.resolve({
|
|
39
|
-
prerender:
|
|
42
|
+
prerender: resolvePrerenderConfigGlobal(vikeConfig).isEnabled
|
|
40
43
|
})
|
|
41
44
|
};
|
|
42
45
|
}
|
|
@@ -168,3 +171,18 @@ function temp_supportOldInterface(config) {
|
|
|
168
171
|
}
|
|
169
172
|
assert(false);
|
|
170
173
|
}
|
|
174
|
+
// TODO/soon rename:
|
|
175
|
+
// - `getVikeConfig()` => `resolveVikeConfig()` ?
|
|
176
|
+
// - `getVikeConfigPublic()` => `getVikeConfig()`
|
|
177
|
+
// - `VikeConfigPublic` => `VikeConfig` ?
|
|
178
|
+
// - `VikeConfigObject` => `VikeConfigInternal` ?
|
|
179
|
+
/**
|
|
180
|
+
* Get all the information Vike knows about the app in your Vite plugin.
|
|
181
|
+
*
|
|
182
|
+
* https://vike.dev/getVikeConfig
|
|
183
|
+
*/
|
|
184
|
+
function getVikeConfigPublic(config) {
|
|
185
|
+
const vikeConfig = config._vike;
|
|
186
|
+
assert(vikeConfig);
|
|
187
|
+
return vikeConfig;
|
|
188
|
+
}
|