vike 0.4.267 → 0.4.268-commit-45c1759
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/RenderErrorPage.js +2 -2
- package/abort.js +2 -2
- package/dist/client/__internal/index.d.ts +2 -0
- package/dist/client/__internal/index.js +3 -0
- package/dist/client/runtime-client-routing/createPageContextClient.d.ts +5 -0
- package/dist/client/runtime-client-routing/getGlobalContextClientInternal.d.ts +5 -0
- package/dist/client/runtime-client-routing/getPageContextFromHooks.d.ts +26 -2
- package/dist/client/runtime-client-routing/getPageContextFromHooks.js +4 -5
- package/dist/client/runtime-client-routing/renderPageClient.d.ts +481 -10
- package/dist/client/runtime-client-routing/renderPageClient.js +116 -41
- package/dist/client/runtime-client-routing/streamedValues.d.ts +5 -0
- package/dist/client/runtime-client-routing/streamedValues.js +23 -0
- package/dist/client/runtime-server-routing/createPageContextClient.d.ts +5 -0
- package/dist/client/runtime-server-routing/entry.js +1 -1
- package/dist/client/runtime-server-routing/getGlobalContextClientInternal.d.ts +5 -0
- package/dist/client/shared/getGlobalContextClientInternalShared.d.ts +5 -0
- package/dist/client/shared/getGlobalContextClientInternalShared.js +2 -0
- package/dist/client/shared/getJsonSerializedInHtml.d.ts +2 -2
- package/dist/client/shared/getJsonSerializedInHtml.js +9 -6
- package/dist/client/shared/loadPageConfigsLazyClientSide.js +0 -4
- package/dist/client/shared/removeFoucBuster.js +14 -3
- package/dist/client/shared/streamedValues/asyncIterable.d.ts +4 -0
- package/dist/client/shared/streamedValues/asyncIterable.js +26 -0
- package/dist/client/shared/streamedValues/lines.d.ts +11 -0
- package/dist/client/shared/streamedValues/lines.js +19 -0
- package/dist/client/shared/streamedValues/promise.d.ts +4 -0
- package/dist/client/shared/streamedValues/promise.js +19 -0
- package/dist/client/shared/streamedValues/readableStream.d.ts +4 -0
- package/dist/client/shared/streamedValues/readableStream.js +44 -0
- package/dist/client/shared/streamedValues/registry.d.ts +21 -0
- package/dist/client/shared/streamedValues/registry.js +40 -0
- package/dist/client/shared/streamedValues.d.ts +7 -0
- package/dist/client/shared/streamedValues.js +82 -0
- package/dist/node/api/dev.js +15 -1
- package/dist/node/api/resolveViteConfigUser.js +2 -2
- package/dist/node/api/serverEntryDev.d.ts +10 -0
- package/dist/node/api/serverEntryDev.js +125 -0
- package/dist/node/createDevMiddleware.js +12 -0
- package/dist/node/prerender/resolvePrerenderConfig.d.ts +1 -1
- package/dist/node/prerender/resolvePrerenderConfig.js +4 -1
- package/dist/node/prerender/runPrerender.d.ts +18 -18
- package/dist/node/prerender/runPrerender.js +61 -16
- package/dist/node/vite/assertEnvVite.js +1 -1
- package/dist/node/vite/index.js +2 -0
- package/dist/node/vite/plugins/build/handleAssetsManifest.js +6 -2
- package/dist/node/vite/plugins/build/pluginBuildApp.js +25 -26
- package/dist/node/vite/plugins/build/pluginBuildConfig.d.ts +2 -2
- package/dist/node/vite/plugins/build/pluginBuildConfig.js +25 -17
- package/dist/node/vite/plugins/build/pluginDistFileNames.js +70 -50
- package/dist/node/vite/plugins/build/pluginEnvironmentEntries.d.ts +6 -0
- package/dist/node/vite/plugins/build/pluginEnvironmentEntries.js +71 -0
- package/dist/node/vite/plugins/build/pluginSuppressRollupWarning.js +19 -17
- package/dist/node/vite/plugins/pluginCommon.js +10 -7
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.d.ts +2 -2
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.js +6 -2
- package/dist/node/vite/plugins/pluginReplaceConstantsGlobalThis.js +6 -4
- package/dist/node/vite/plugins/pluginUniversalDeploy/getServerConfig.d.ts +3 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/getServerConfig.js +28 -2
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginServerEntryAlias.d.ts +1 -1
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginServerEntryAlias.js +22 -11
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginWrapServerFile.d.ts +4 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginWrapServerFile.js +29 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy.js +29 -5
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -1
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.js +29 -12
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +3 -2
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +7 -7
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +10 -6
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +5 -11
- package/dist/node/vite/plugins/pluginVirtualFiles.js +20 -0
- package/dist/node/vite/shared/addSsrMiddleware.js +11 -27
- package/dist/node/vite/shared/findPageFiles.d.ts +1 -1
- package/dist/node/vite/shared/findPageFiles.js +1 -11
- package/dist/node/vite/shared/getAssetsDir.d.ts +3 -2
- package/dist/node/vite/shared/getAssetsDir.js +3 -3
- package/dist/node/vite/shared/isViteCli.d.ts +3 -3
- package/dist/node/vite/shared/isViteCli.js +80 -84
- package/dist/node/vite/shared/isViteServerSide.js +2 -7
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.d.ts +6 -4
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.js +17 -6
- package/dist/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +9 -2
- package/dist/node/vite/shared/resolveVikeConfigInternal.d.ts +5 -1
- package/dist/node/vite/shared/resolveVikeConfigInternal.js +86 -13
- package/dist/server/__internal/fetch-deprecated.d.ts +2 -0
- package/dist/server/__internal/fetch-deprecated.js +6 -0
- package/dist/server/__internal/fetch.d.ts +9 -0
- package/dist/server/__internal/fetch.js +5 -0
- package/dist/server/__internal/index.d.ts +4 -0
- package/dist/server/__internal/index.js +8 -0
- package/dist/server/createPageRenderer.d.ts +2 -2
- package/dist/server/createPageRenderer.js +2 -2
- package/dist/server/runtime/createDevMiddleware.js +3 -1
- package/dist/server/runtime/globalContext.d.ts +69 -10
- package/dist/server/runtime/globalContext.js +35 -2
- package/dist/server/runtime/index.d.ts +1 -1
- package/dist/server/runtime/index.js +1 -1
- package/dist/server/runtime/renderPageServer/analyzePage.js +3 -3
- package/dist/server/runtime/renderPageServer/createHttpResponse.d.ts +20 -9
- package/dist/server/runtime/renderPageServer/createHttpResponse.js +34 -21
- package/dist/server/runtime/renderPageServer/createPageContextServer.d.ts +13 -23
- package/dist/server/runtime/renderPageServer/csp.d.ts +2 -1
- package/dist/server/runtime/renderPageServer/csp.js +2 -1
- package/dist/server/runtime/renderPageServer/execHookOnError.js +1 -1
- package/dist/server/runtime/renderPageServer/execHookOnRenderHtml.d.ts +9 -0
- package/dist/server/runtime/renderPageServer/execHookOnRenderHtml.js +21 -9
- package/dist/server/runtime/renderPageServer/getHttpResponseBody.d.ts +2 -2
- package/dist/server/runtime/renderPageServer/getHttpResponseBody.js +19 -12
- package/dist/server/runtime/renderPageServer/getPageContextJson.d.ts +8 -0
- package/dist/server/runtime/renderPageServer/getPageContextJson.js +47 -0
- package/dist/server/runtime/renderPageServer/handleErrorWithoutErrorPage.d.ts +2 -0
- package/dist/server/runtime/renderPageServer/handleErrorWithoutErrorPage.js +1 -1
- package/dist/server/runtime/renderPageServer/handlePageContextRequestUrl.js +2 -2
- package/dist/server/runtime/renderPageServer/headersResponse.d.ts +11 -2
- package/dist/server/runtime/renderPageServer/headersResponse.js +22 -2
- package/dist/server/runtime/renderPageServer/html/injectAssets/getHtmlTags.js +5 -4
- package/dist/server/runtime/renderPageServer/html/injectAssets.d.ts +3 -2
- package/dist/server/runtime/renderPageServer/html/injectAssets.js +7 -1
- package/dist/server/runtime/renderPageServer/html/renderHtml.js +4 -2
- package/dist/server/runtime/renderPageServer/html/serializeContext.d.ts +5 -1
- package/dist/server/runtime/renderPageServer/html/serializeContext.js +12 -9
- package/dist/server/runtime/renderPageServer/html/stream.d.ts +13 -6
- package/dist/server/runtime/renderPageServer/html/stream.js +135 -32
- package/dist/server/runtime/renderPageServer/html/streamedValuesHtml.d.ts +30 -0
- package/dist/server/runtime/renderPageServer/html/streamedValuesHtml.js +92 -0
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.d.ts +10 -14
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.js +5 -1
- package/dist/server/runtime/renderPageServer/loadPageContextEnvironments.d.ts +15 -0
- package/dist/server/runtime/renderPageServer/loadPageContextEnvironments.js +61 -0
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.d.ts +320 -55
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.js +21 -12
- package/dist/server/runtime/renderPageServer/streamedValues/asyncIterable.d.ts +4 -0
- package/dist/server/runtime/renderPageServer/streamedValues/asyncIterable.js +12 -0
- package/dist/server/runtime/renderPageServer/streamedValues/lines.d.ts +10 -0
- package/dist/server/runtime/renderPageServer/streamedValues/lines.js +49 -0
- package/dist/server/runtime/renderPageServer/streamedValues/promise.d.ts +4 -0
- package/dist/server/runtime/renderPageServer/streamedValues/promise.js +14 -0
- package/dist/server/runtime/renderPageServer/streamedValues/pump.d.ts +10 -0
- package/dist/server/runtime/renderPageServer/streamedValues/pump.js +67 -0
- package/dist/server/runtime/renderPageServer/streamedValues/readableStream.d.ts +4 -0
- package/dist/server/runtime/renderPageServer/streamedValues/readableStream.js +12 -0
- package/dist/server/runtime/renderPageServer/streamedValues/registry.d.ts +28 -0
- package/dist/server/runtime/renderPageServer/streamedValues/registry.js +33 -0
- package/dist/server/runtime/renderPageServer.d.ts +65 -18
- package/dist/server/runtime/renderPageServer.js +33 -62
- package/dist/server/runtime/universal-middleware/core.d.ts +25 -0
- package/dist/server/runtime/universal-middleware/core.js +167 -0
- package/dist/server/runtime/universal-middleware/deprecated-export.d.ts +3 -0
- package/dist/server/runtime/universal-middleware/deprecated-export.js +10 -0
- package/dist/server/runtime/universal-middleware/getMiddlewaresPipe.d.ts +15 -0
- package/dist/server/runtime/universal-middleware/getMiddlewaresPipe.js +51 -0
- package/dist/server/runtime/universal-middleware/vikeUniversalMiddleware.d.ts +9 -0
- package/dist/server/runtime/universal-middleware/vikeUniversalMiddleware.js +22 -0
- package/dist/shared-server-client/createGlobalContextShared.d.ts +8 -0
- package/dist/shared-server-client/createGlobalContextShared.js +2 -1
- package/dist/shared-server-client/getPageContextPublicShared.js +0 -2
- package/dist/shared-server-client/getPageFiles/parseVirtualFileExportsGlobalEntry.d.ts +8 -0
- package/dist/shared-server-client/getPageFiles/parseVirtualFileExportsGlobalEntry.js +17 -7
- package/dist/shared-server-client/hooks/execHook.d.ts +1 -1
- package/dist/shared-server-client/hooks/execHook.js +2 -2
- package/dist/shared-server-client/page-configs/serialize/serializeConfigValues.js +2 -0
- package/dist/shared-server-client/route/abort.d.ts +1 -1
- package/dist/shared-server-client/route/abort.js +4 -2
- package/dist/shared-server-client/streamedValues.d.ts +22 -0
- package/dist/shared-server-client/streamedValues.js +24 -0
- package/dist/shared-server-node/vike-environments.d.ts +4 -0
- package/dist/shared-server-node/vike-environments.js +10 -0
- package/dist/shared-server-node/virtualFileId.d.ts +7 -5
- package/dist/shared-server-node/virtualFileId.js +42 -42
- package/dist/types/Config.d.ts +11 -3
- package/dist/types/GlobalContext.d.ts +3 -3
- package/dist/types/PageConfig.d.ts +13 -5
- package/dist/types/PageContext.d.ts +18 -10
- package/dist/types/PageContext.js +1 -0
- package/dist/types/Server.d.ts +1 -1
- package/dist/types/VikeNamespace.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/utils/PROJECT_VERSION.js +1 -1
- package/dist/utils/assertViteVersion.d.ts +1 -3
- package/dist/utils/assertViteVersion.js +6 -9
- package/dist/utils/catchInfiniteLoop.js +33 -11
- package/dist/utils/deepEqual.d.ts +2 -1
- package/dist/utils/deepEqual.js +21 -6
- package/dist/utils/getContentTypeFromUrl.d.ts +2 -0
- package/dist/utils/getContentTypeFromUrl.js +39 -0
- package/dist/utils/injectRollupInputs.d.ts +2 -2
- package/dist/utils/injectRollupInputs.js +2 -2
- package/dist/utils/installUncaughtErrorHandlers.js +9 -0
- package/dist/utils/isDev.js +2 -7
- package/dist/utils/parseUrl-extras.js +4 -0
- package/fetch.js +2 -2
- package/modifyUrl.js +2 -2
- package/package.json +42 -26
- package/routing.js +2 -2
- package/universal-middleware.js +2 -2
- package/vike-server.d.ts +14 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginUnwrapProdOptions.d.ts +0 -4
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginUnwrapProdOptions.js +0 -22
- package/dist/server/runtime/fetch.d.ts +0 -10
- package/dist/server/runtime/fetch.js +0 -5
- package/dist/server/runtime/universal-middleware.d.ts +0 -10
- package/dist/server/runtime/universal-middleware.js +0 -27
- package/dist/shared-server-client/addIs404ToPageProps.d.ts +0 -2
- package/dist/shared-server-client/addIs404ToPageProps.js +0 -17
|
@@ -2,22 +2,12 @@ export { findPageFiles };
|
|
|
2
2
|
import { glob } from 'tinyglobby';
|
|
3
3
|
import { scriptFileExtensionPattern } from '../../../utils/isScriptFile.js';
|
|
4
4
|
import { toPosixPath } from '../../../utils/path.js';
|
|
5
|
-
import { assertWarning } from '../../../utils/assert.js';
|
|
6
|
-
import pc from '@brillout/picocolors';
|
|
7
5
|
import { getOutDirs } from './getOutDirs.js';
|
|
8
6
|
import '../assertEnvVite.js';
|
|
9
|
-
async function findPageFiles(config, fileTypes
|
|
7
|
+
async function findPageFiles(config, fileTypes) {
|
|
10
8
|
const cwd = config.root;
|
|
11
9
|
const { outDirRoot } = getOutDirs(config, undefined);
|
|
12
|
-
const timeBase = new Date().getTime();
|
|
13
10
|
let pageFiles = await glob(fileTypes.map((fileType) => `**/*${fileType}.${scriptFileExtensionPattern}`), { ignore: ['**/node_modules/**', `${outDirRoot}/**`], cwd, dot: false, expandDirectories: false });
|
|
14
11
|
pageFiles = pageFiles.map((p) => '/' + toPosixPath(p));
|
|
15
|
-
const time = new Date().getTime() - timeBase;
|
|
16
|
-
if (isDev) {
|
|
17
|
-
// We only warn in dev, because while building it's expected to take a long time as tinyglobby is competing for resources with other tasks
|
|
18
|
-
assertWarning(time < 1.5 * 1000, `Finding your page files ${pc.cyan('**/*.page.*')} took an unexpected long time (${time}ms). Reach out to the vike maintainer.`, {
|
|
19
|
-
onlyOnce: 'slow-page-files-search',
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
12
|
return pageFiles;
|
|
23
13
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { getAssetsDir };
|
|
2
2
|
import { assertUsage } from '../../../utils/assert.js';
|
|
3
3
|
import '../assertEnvVite.js';
|
|
4
|
-
function getAssetsDir(
|
|
5
|
-
let { assetsDir } =
|
|
6
|
-
assertUsage(assetsDir,
|
|
4
|
+
function getAssetsDir(build) {
|
|
5
|
+
let { assetsDir } = build;
|
|
6
|
+
assertUsage(assetsDir, "Vite's build.assetsDir cannot be an empty string");
|
|
7
7
|
assetsDir = assetsDir.split(/\/|\\/).filter(Boolean).join('/');
|
|
8
8
|
return assetsDir;
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { isViteCli };
|
|
2
2
|
export { getViteCliArgs };
|
|
3
|
-
export {
|
|
3
|
+
export { getViteCliArgsMinimal };
|
|
4
4
|
export { getViteCliCommand };
|
|
5
5
|
import '../assertEnvVite.js';
|
|
6
6
|
declare function isViteCli(): boolean;
|
|
@@ -12,8 +12,8 @@ type ConfigFromCli = {
|
|
|
12
12
|
};
|
|
13
13
|
type ViteCommand = 'dev' | 'build' | 'optimize' | 'preview';
|
|
14
14
|
declare function getViteCliCommand(): ViteCommand | null;
|
|
15
|
-
declare function
|
|
16
|
-
declare function getViteCliArgs(): null | {
|
|
15
|
+
declare function getViteCliArgsMinimal(): null | {
|
|
17
16
|
root: string | undefined;
|
|
18
17
|
configFile: string | undefined;
|
|
19
18
|
};
|
|
19
|
+
declare function getViteCliArgs(): null | ConfigFromCli;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { isViteCli };
|
|
2
2
|
export { getViteCliArgs };
|
|
3
|
-
export {
|
|
3
|
+
export { getViteCliArgsMinimal };
|
|
4
4
|
export { getViteCliCommand };
|
|
5
|
+
// Copied from Vite's CLI
|
|
5
6
|
import { assert } from '../../../utils/assert.js';
|
|
6
7
|
import { isObject } from '../../../utils/isObject.js';
|
|
7
8
|
import { isToolCli } from '../../../utils/isToolCli.js';
|
|
@@ -11,48 +12,23 @@ const desc = 'vike:vite-cli-simulation';
|
|
|
11
12
|
function isViteCli() {
|
|
12
13
|
return isToolCli('vite');
|
|
13
14
|
}
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
assert(
|
|
20
|
-
|
|
15
|
+
function parseViteCli() {
|
|
16
|
+
let viteCli;
|
|
17
|
+
const onCommand = (command) => (root, options) => {
|
|
18
|
+
assert(viteCli === undefined);
|
|
19
|
+
assert(root === undefined || typeof root === 'string');
|
|
20
|
+
assert(isObject(options));
|
|
21
|
+
// Same as Vite: duplicated options => the last value wins
|
|
22
|
+
for (const [key, value] of Object.entries(options)) {
|
|
23
|
+
if (Array.isArray(value))
|
|
24
|
+
options[key] = value[value.length - 1];
|
|
25
|
+
}
|
|
26
|
+
assert(options.config === undefined || typeof options.config === 'string');
|
|
27
|
+
viteCli = { command, root, options };
|
|
21
28
|
};
|
|
22
|
-
//
|
|
23
|
-
// https://github.com/vitejs/vite/blob/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e/packages/vite/src/node/cli.ts#L186-L188
|
|
24
|
-
const cli = cac(desc);
|
|
25
|
-
// dev
|
|
26
|
-
cli
|
|
27
|
-
.command('[root]', desc)
|
|
28
|
-
.alias('serve')
|
|
29
|
-
.alias('dev')
|
|
30
|
-
.action(() => {
|
|
31
|
-
setCommand('dev');
|
|
32
|
-
});
|
|
33
|
-
// build
|
|
34
|
-
cli.command('build [root]', desc).action(() => {
|
|
35
|
-
setCommand('build');
|
|
36
|
-
});
|
|
37
|
-
// optimize
|
|
38
|
-
cli.command('optimize [root]', desc).action(() => {
|
|
39
|
-
setCommand('optimize');
|
|
40
|
-
});
|
|
41
|
-
// preview
|
|
42
|
-
cli.command('preview [root]', desc).action(() => {
|
|
43
|
-
setCommand('preview');
|
|
44
|
-
});
|
|
45
|
-
cli.parse();
|
|
46
|
-
assert(command);
|
|
47
|
-
return command;
|
|
48
|
-
}
|
|
49
|
-
function getViteBuildCliArgs() {
|
|
50
|
-
if (!isViteCli())
|
|
51
|
-
return null;
|
|
52
|
-
// Copied & adapted from Vite
|
|
29
|
+
// We need to declare all Vite's options, otherwise cac consumes the next argument as the value of boolean options (e.g. `vite build --emptyOutDir some-root`).
|
|
53
30
|
const cli = cac(desc);
|
|
54
31
|
// Common configs
|
|
55
|
-
// https://github.com/vitejs/vite/blob/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e/packages/vite/src/node/cli.ts#L169-L182
|
|
56
32
|
cli
|
|
57
33
|
.option('-c, --config <file>', desc)
|
|
58
34
|
.option('--base <path>', desc)
|
|
@@ -62,8 +38,22 @@ function getViteBuildCliArgs() {
|
|
|
62
38
|
.option('-d, --debug [feat]', desc)
|
|
63
39
|
.option('-f, --filter <filter>', desc)
|
|
64
40
|
.option('-m, --mode <mode>', desc);
|
|
65
|
-
//
|
|
66
|
-
|
|
41
|
+
// dev
|
|
42
|
+
cli
|
|
43
|
+
.command('[root]', desc)
|
|
44
|
+
.alias('serve')
|
|
45
|
+
.alias('dev')
|
|
46
|
+
.option('--host [host]', desc)
|
|
47
|
+
.option('--port <port>', desc)
|
|
48
|
+
.option('--open [path]', desc)
|
|
49
|
+
.option('--cors', desc)
|
|
50
|
+
.option('--strictPort', desc)
|
|
51
|
+
.option('--force', desc)
|
|
52
|
+
.option('--experimentalBundle', desc)
|
|
53
|
+
// Options that this copy doesn't declare (e.g. added by newer Vite versions) are still validated by Vite's own CLI, which throws `Unknown option` for options Vite doesn't know
|
|
54
|
+
.allowUnknownOptions()
|
|
55
|
+
.action(onCommand('dev'));
|
|
56
|
+
// build
|
|
67
57
|
cli
|
|
68
58
|
.command('build [root]', desc)
|
|
69
59
|
.option('--target <target>', desc)
|
|
@@ -71,35 +61,61 @@ function getViteBuildCliArgs() {
|
|
|
71
61
|
.option('--assetsDir <dir>', desc)
|
|
72
62
|
.option('--assetsInlineLimit <number>', desc)
|
|
73
63
|
.option('--ssr [entry]', desc)
|
|
74
|
-
.option('--sourcemap', desc)
|
|
64
|
+
.option('--sourcemap [output]', desc)
|
|
75
65
|
.option('--minify [minifier]', desc)
|
|
76
66
|
.option('--manifest [name]', desc)
|
|
77
67
|
.option('--ssrManifest [name]', desc)
|
|
78
68
|
.option('--emptyOutDir', desc)
|
|
79
69
|
.option('-w, --watch', desc)
|
|
80
70
|
.option('--app', desc)
|
|
81
|
-
.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
build: buildOptions,
|
|
96
|
-
...(options.app ? { builder: {} } : {}),
|
|
97
|
-
};
|
|
98
|
-
});
|
|
99
|
-
let configFromCli = null;
|
|
71
|
+
.allowUnknownOptions()
|
|
72
|
+
.action(onCommand('build'));
|
|
73
|
+
// optimize
|
|
74
|
+
cli.command('optimize [root]', desc).option('--force', desc).allowUnknownOptions().action(onCommand('optimize'));
|
|
75
|
+
// preview
|
|
76
|
+
cli
|
|
77
|
+
.command('preview [root]', desc)
|
|
78
|
+
.option('--host [host]', desc)
|
|
79
|
+
.option('--port <port>', desc)
|
|
80
|
+
.option('--strictPort', desc)
|
|
81
|
+
.option('--open [path]', desc)
|
|
82
|
+
.option('--outDir <dir>', desc)
|
|
83
|
+
.allowUnknownOptions()
|
|
84
|
+
.action(onCommand('preview'));
|
|
100
85
|
cli.parse();
|
|
101
|
-
|
|
102
|
-
|
|
86
|
+
assert(viteCli);
|
|
87
|
+
return viteCli;
|
|
88
|
+
}
|
|
89
|
+
function getViteCliCommand() {
|
|
90
|
+
if (!isViteCli())
|
|
91
|
+
return null;
|
|
92
|
+
return parseViteCli().command;
|
|
93
|
+
}
|
|
94
|
+
function getViteCliArgsMinimal() {
|
|
95
|
+
if (!isViteCli())
|
|
96
|
+
return null;
|
|
97
|
+
const { root, options } = parseViteCli();
|
|
98
|
+
return { root, configFile: options.config };
|
|
99
|
+
}
|
|
100
|
+
function getViteCliArgs() {
|
|
101
|
+
if (!isViteCli())
|
|
102
|
+
return null;
|
|
103
|
+
const { command, root, options } = parseViteCli();
|
|
104
|
+
if (command !== 'build')
|
|
105
|
+
return null;
|
|
106
|
+
// Like Vite: all options except the global ones go to `build`
|
|
107
|
+
const buildOptions = cleanGlobalCLIOptions(cleanBuilderCLIOptions(options));
|
|
108
|
+
return {
|
|
109
|
+
root,
|
|
110
|
+
base: options.base,
|
|
111
|
+
mode: options.mode,
|
|
112
|
+
configFile: options.config,
|
|
113
|
+
configLoader: options.configLoader,
|
|
114
|
+
logLevel: options.logLevel,
|
|
115
|
+
clearScreen: options.clearScreen,
|
|
116
|
+
build: buildOptions,
|
|
117
|
+
...(options.app ? { builder: {} } : {}),
|
|
118
|
+
};
|
|
103
119
|
function cleanGlobalCLIOptions(options) {
|
|
104
120
|
const ret = { ...options };
|
|
105
121
|
delete ret['--'];
|
|
@@ -129,29 +145,9 @@ function getViteBuildCliArgs() {
|
|
|
129
145
|
}
|
|
130
146
|
return ret;
|
|
131
147
|
}
|
|
132
|
-
// https://github.com/vitejs/vite/blob/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e/packages/vite/src/node/cli.ts#L141
|
|
133
148
|
function cleanBuilderCLIOptions(options) {
|
|
134
149
|
const ret = { ...options };
|
|
135
150
|
delete ret.app;
|
|
136
151
|
return ret;
|
|
137
152
|
}
|
|
138
153
|
}
|
|
139
|
-
function getViteCliArgs() {
|
|
140
|
-
if (!isViteCli())
|
|
141
|
-
return null;
|
|
142
|
-
const cli = cac(desc);
|
|
143
|
-
cli.option('-c, --config <file>', desc);
|
|
144
|
-
let result = null;
|
|
145
|
-
const setResult = (root, options) => {
|
|
146
|
-
assert(root === undefined || typeof root === 'string');
|
|
147
|
-
assert(isObject(options));
|
|
148
|
-
assert(options.config === undefined || typeof options.config === 'string');
|
|
149
|
-
result = { root, configFile: options.config };
|
|
150
|
-
};
|
|
151
|
-
cli.command('[root]', desc).alias('serve').alias('dev').action(setResult);
|
|
152
|
-
cli.command('build [root]', desc).action(setResult);
|
|
153
|
-
cli.command('optimize [root]', desc).action(setResult);
|
|
154
|
-
cli.command('preview [root]', desc).action(setResult);
|
|
155
|
-
cli.parse();
|
|
156
|
-
return result;
|
|
157
|
-
}
|
|
@@ -4,8 +4,7 @@ export { isViteServerSide_onlySsrEnv };
|
|
|
4
4
|
export { isViteServerSide_extraSafe };
|
|
5
5
|
export { isViteServerSide_applyToEnvironment };
|
|
6
6
|
export { isViteServerSide_configEnvironment };
|
|
7
|
-
import {
|
|
8
|
-
import { assert, assertUsage } from '../../../utils/assert.js';
|
|
7
|
+
import { assert } from '../../../utils/assert.js';
|
|
9
8
|
import '../assertEnvVite.js';
|
|
10
9
|
function isViteServerSide_impl(configGlobal, viteEnv) {
|
|
11
10
|
assert(!('consumer' in configGlobal)); // make sure configGlobal isn't viteEnv.config
|
|
@@ -60,11 +59,7 @@ function isViteServerSide_extraSafe(config, viteEnv, options) {
|
|
|
60
59
|
optionsSsr: options?.ssr ?? null,
|
|
61
60
|
};
|
|
62
61
|
assert(options, debug);
|
|
63
|
-
|
|
64
|
-
assert(typeof options.ssr === 'boolean', debug)
|
|
65
|
-
/*/
|
|
66
|
-
assertUsage(typeof options.ssr === 'boolean', `You're using an old Vite version — update Vite to ${viteVersionMin} or above.`);
|
|
67
|
-
//*/
|
|
62
|
+
assert(typeof options.ssr === 'boolean', debug);
|
|
68
63
|
assert(options.ssr === isServerSide, debug);
|
|
69
64
|
return isServerSide;
|
|
70
65
|
}
|
|
@@ -56,11 +56,13 @@ type ConfigDefinition = {
|
|
|
56
56
|
}) => boolean);
|
|
57
57
|
/** Whether changes to the configuration should trigger a Vite restart. */
|
|
58
58
|
vite?: boolean;
|
|
59
|
-
/** @
|
|
60
|
-
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed) => unknown;
|
|
61
|
-
/** @
|
|
59
|
+
/** @internal */
|
|
60
|
+
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed, isDev: boolean) => unknown;
|
|
61
|
+
/** @internal */
|
|
62
62
|
_valueIsFilePath?: true;
|
|
63
|
-
/** @
|
|
63
|
+
/** @internal */
|
|
64
|
+
_valueNotLoadedAtRuntime?: true;
|
|
65
|
+
/** @internal */
|
|
64
66
|
_userEffectDefinedAtFilePath?: DefinedAtFilePath;
|
|
65
67
|
isDefinedByPeerDependency?: undefined;
|
|
66
68
|
} | ConfigDefinitionDefinedByPeerDependency;
|
|
@@ -53,14 +53,15 @@ const metaBuiltIn = {
|
|
|
53
53
|
route: {
|
|
54
54
|
env: {
|
|
55
55
|
server: true,
|
|
56
|
-
client:
|
|
56
|
+
client: true,
|
|
57
|
+
clientRoutingOnly: true,
|
|
57
58
|
// For vite-plugin-vercel
|
|
58
59
|
config: true,
|
|
59
60
|
},
|
|
60
61
|
eager: true,
|
|
61
62
|
},
|
|
62
63
|
guard: {
|
|
63
|
-
env: { server: true, client:
|
|
64
|
+
env: { server: true, client: true, clientRoutingOnly: true },
|
|
64
65
|
},
|
|
65
66
|
data: {
|
|
66
67
|
env: { server: true },
|
|
@@ -70,7 +71,7 @@ const metaBuiltIn = {
|
|
|
70
71
|
cumulative: true,
|
|
71
72
|
},
|
|
72
73
|
iKnowThePerformanceRisksOfAsyncRouteFunctions: {
|
|
73
|
-
env: { server: true, client:
|
|
74
|
+
env: { server: true, client: true, clientRoutingOnly: true },
|
|
74
75
|
eager: true,
|
|
75
76
|
},
|
|
76
77
|
filesystemRoutingRoot: {
|
|
@@ -114,12 +115,13 @@ const metaBuiltIn = {
|
|
|
114
115
|
hasServerOnlyHook: {
|
|
115
116
|
env: { client: true },
|
|
116
117
|
eager: true,
|
|
117
|
-
_computed: (pageConfig) => {
|
|
118
|
+
_computed: (pageConfig, isDev) => {
|
|
118
119
|
const sources = ['data', 'onBeforeRender', 'onCreatePageContext', 'guard']
|
|
119
120
|
.map((hookName) => getConfigValueSourcesRelevant(hookName, {
|
|
120
|
-
|
|
121
|
+
environmentName: 'server',
|
|
121
122
|
// TO-DO/eventually/remove-server-router: let's eventually remove support for Server Routing
|
|
122
123
|
isClientRouting: true,
|
|
124
|
+
isDev,
|
|
123
125
|
}, pageConfig))
|
|
124
126
|
.flat(1)
|
|
125
127
|
// Server-only
|
|
@@ -243,6 +245,15 @@ const metaBuiltIn = {
|
|
|
243
245
|
server: {
|
|
244
246
|
env: { server: true },
|
|
245
247
|
global: true,
|
|
248
|
+
// virtual:vike:global-entry:server shouldn't import +server.js
|
|
249
|
+
// - Otherwise a +server.js calling `await getGlobalContext()` would wait for itself and hang indefinitely
|
|
250
|
+
_valueNotLoadedAtRuntime: true,
|
|
251
|
+
},
|
|
252
|
+
serverEntry: {
|
|
253
|
+
// The value is merely the file path of the server entry, which becomes dist/server/index.mjs — Vike never loads it as a config value
|
|
254
|
+
env: { config: true },
|
|
255
|
+
global: true,
|
|
256
|
+
_valueIsFilePath: true,
|
|
246
257
|
},
|
|
247
258
|
precompress: {
|
|
248
259
|
env: { config: true },
|
|
@@ -253,7 +264,7 @@ const metaBuiltIn = {
|
|
|
253
264
|
global: true,
|
|
254
265
|
},
|
|
255
266
|
onBeforeRoute: {
|
|
256
|
-
env: { server: true, client:
|
|
267
|
+
env: { server: true, client: true, clientRoutingOnly: true },
|
|
257
268
|
eager: true,
|
|
258
269
|
global: true,
|
|
259
270
|
},
|
|
@@ -505,12 +505,19 @@ function getConfigExecutionErrorIntroMsg(err) {
|
|
|
505
505
|
const errIntroMsg = execErrIntroMsg.get(err);
|
|
506
506
|
return errIntroMsg ?? null;
|
|
507
507
|
}
|
|
508
|
+
const processId = crypto.randomUUID();
|
|
508
509
|
function getTemporaryBuildFilePath(filePathAbsoluteFilesystem, code) {
|
|
509
510
|
assertPosixPath(filePathAbsoluteFilesystem);
|
|
510
511
|
const fileDir = path.posix.dirname(filePathAbsoluteFilesystem);
|
|
511
512
|
const filename = path.posix.basename(filePathAbsoluteFilesystem);
|
|
512
|
-
|
|
513
|
-
|
|
513
|
+
const fileHash = crypto
|
|
514
|
+
.createHash('md5')
|
|
515
|
+
// Using content hash in file path, so that the cache of dynamic `import()` behaves as we want.
|
|
516
|
+
.update(code)
|
|
517
|
+
// Parallel processes shouldn't overwrite each other's temporary file
|
|
518
|
+
.update(processId)
|
|
519
|
+
.digest('hex')
|
|
520
|
+
.slice(0, 12);
|
|
514
521
|
// Syntax with semicolon `build:${/*...*/}` doesn't work on Windows: https://github.com/vikejs/vike/issues/800#issuecomment-1517329455
|
|
515
522
|
const filePathTmp = path.posix.join(fileDir, `${filename}.build-${fileHash}.mjs`);
|
|
516
523
|
assert(isTemporaryBuildFile(filePathTmp));
|
|
@@ -3,6 +3,7 @@ export type { VikeConfig };
|
|
|
3
3
|
export { getVikeConfigInternal };
|
|
4
4
|
export { getVikeConfigInternalOptional };
|
|
5
5
|
export { setVikeConfigContext };
|
|
6
|
+
export { setViteEnvironmentNames };
|
|
6
7
|
export { isVikeConfigContextSet };
|
|
7
8
|
export { reloadVikeConfig };
|
|
8
9
|
export { isV1Design };
|
|
@@ -36,6 +37,7 @@ type VikeConfigInternal = GlobalConfigPublic & {
|
|
|
36
37
|
_pageConfigGlobal: PageConfigGlobalBuildTime;
|
|
37
38
|
_vikeConfigDependencies: Set<string>;
|
|
38
39
|
_extensions: PlusFile[];
|
|
40
|
+
_additionalEnvironmentNames: string[];
|
|
39
41
|
prerenderContext: PrerenderContext;
|
|
40
42
|
};
|
|
41
43
|
declare function reloadVikeConfig(): void;
|
|
@@ -53,6 +55,7 @@ type VikeConfig = Pick<VikeConfigInternal, 'config' | 'pages' | 'prerenderContex
|
|
|
53
55
|
dangerouslyUseInternals: DangerouslyUseInternals<VikeConfigInternal>;
|
|
54
56
|
};
|
|
55
57
|
declare function setVikeConfigContext(vikeConfigCtx_: VikeConfigContext): void;
|
|
58
|
+
declare function setViteEnvironmentNames(viteEnvironmentNames: string[]): Promise<void>;
|
|
56
59
|
declare function isVikeConfigContextSet(): boolean;
|
|
57
60
|
declare function getVikeConfigInternalOptional(): Promise<null | VikeConfigInternal>;
|
|
58
61
|
declare function isV1Design(): boolean;
|
|
@@ -74,8 +77,9 @@ declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinition
|
|
|
74
77
|
isGlobalLocation: boolean;
|
|
75
78
|
}) => boolean);
|
|
76
79
|
vite?: boolean;
|
|
77
|
-
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed) => unknown;
|
|
80
|
+
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed, isDev: boolean) => unknown;
|
|
78
81
|
_valueIsFilePath?: true;
|
|
82
|
+
_valueNotLoadedAtRuntime?: true;
|
|
79
83
|
_userEffectDefinedAtFilePath?: DefinedAtFilePath;
|
|
80
84
|
isDefinedByPeerDependency?: undefined;
|
|
81
85
|
} | null;
|