vike 0.4.212 → 0.4.214
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 +3 -3
- package/__internal/loadImportBuild.js +3 -0
- package/__internal/setup.js +3 -3
- package/__internal.js +3 -3
- package/abort.js +3 -3
- package/api.js +3 -0
- package/cli.js +3 -3
- package/client/router.js +3 -3
- package/client.js +3 -3
- package/dist/cjs/client/server-routing-runtime/utils.js +2 -2
- package/dist/cjs/node/api/APIOptions.js +2 -0
- package/dist/cjs/node/api/build.js +50 -0
- package/dist/cjs/node/api/dev.js +10 -0
- package/dist/cjs/node/api/enhanceViteConfig.js +52 -0
- package/dist/cjs/node/api/index.js +36 -0
- package/dist/cjs/node/api/prerender.js +10 -0
- package/dist/cjs/node/api/preview.js +10 -0
- package/dist/cjs/node/cli/entry.js +100 -0
- package/dist/cjs/node/cli/index.js +8 -7
- package/dist/cjs/node/cli/parseCli.js +61 -0
- package/dist/cjs/node/cli/utils.js +3 -1
- package/dist/cjs/node/plugin/index.js +3 -1
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +5 -5
- package/dist/cjs/node/plugin/plugins/buildConfig.js +13 -10
- package/dist/cjs/node/plugin/plugins/commonConfig/pluginName.js +4 -0
- package/dist/cjs/node/plugin/plugins/commonConfig.js +13 -5
- package/dist/cjs/node/plugin/plugins/previewConfig.js +1 -1
- package/dist/cjs/node/plugin/plugins/vite6HmrRegressionWorkaround.js +35 -0
- package/dist/cjs/node/plugin/shared/getEnvVarObject.js +29 -0
- package/dist/cjs/node/plugin/utils.js +2 -2
- package/dist/cjs/node/prerender/index.js +9 -2
- package/dist/cjs/node/prerender/runPrerender.js +15 -9
- package/dist/cjs/node/runtime/globalContext.js +1 -1
- package/dist/cjs/node/runtime/utils.js +2 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertNodeEnv.js +1 -1
- package/dist/esm/client/client-routing-runtime/utils.js +2 -2
- package/dist/esm/client/server-routing-runtime/utils.js +2 -2
- package/dist/esm/node/api/APIOptions.d.ts +10 -0
- package/dist/esm/node/api/build.d.ts +6 -0
- package/dist/esm/node/api/build.js +25 -0
- package/dist/esm/node/api/dev.d.ts +3 -0
- package/dist/esm/node/api/dev.js +8 -0
- package/dist/esm/node/api/enhanceViteConfig.d.ts +6 -0
- package/dist/esm/node/api/enhanceViteConfig.js +27 -0
- package/dist/esm/node/api/index.d.ts +12 -0
- package/dist/esm/node/api/index.js +10 -0
- package/dist/esm/node/api/prerender.d.ts +3 -0
- package/dist/esm/node/api/prerender.js +8 -0
- package/dist/esm/node/api/preview.d.ts +3 -0
- package/dist/esm/node/api/preview.js +8 -0
- package/dist/esm/node/cli/entry.d.ts +1 -0
- package/dist/esm/node/cli/entry.js +72 -0
- package/dist/esm/node/cli/index.d.ts +1 -2
- package/dist/esm/node/cli/index.js +4 -6
- package/dist/esm/node/cli/parseCli.d.ts +4 -0
- package/dist/esm/node/cli/parseCli.js +56 -0
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +3 -1
- package/dist/esm/node/plugin/index.js +3 -1
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +6 -6
- package/dist/esm/node/plugin/plugins/buildConfig.js +13 -10
- package/dist/esm/node/plugin/plugins/commonConfig/pluginName.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/commonConfig/pluginName.js +1 -0
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +11 -3
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/previewConfig.js +1 -1
- package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.js +33 -0
- package/dist/esm/node/plugin/shared/getEnvVarObject.d.ts +2 -0
- package/dist/esm/node/plugin/shared/getEnvVarObject.js +24 -0
- package/dist/esm/node/plugin/utils.js +2 -2
- package/dist/esm/node/prerender/index.d.ts +1 -1
- package/dist/esm/node/prerender/index.js +5 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +7 -28
- package/dist/esm/node/prerender/runPrerender.js +15 -9
- package/dist/esm/node/runtime/globalContext.js +1 -1
- package/dist/esm/node/runtime/utils.js +2 -1
- package/dist/esm/shared/ConfigVike.d.ts +3 -9
- package/dist/esm/shared/page-configs/Config.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/assertNodeEnv.js +1 -1
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist-cjs-fixup.mjs +41 -0
- package/getPageContext.js +3 -0
- package/modifyUrl.js +3 -0
- package/node/cli/bin.js +3 -0
- package/package.json +43 -19
- package/plugin.js +3 -3
- package/prerender.js +3 -3
- package/routing.js +3 -3
- package/server.js +3 -3
- package/types.js +3 -0
- package/dist/cjs/node/cli/bin.js +0 -49
- package/dist/esm/node/cli/bin.js +0 -44
- package/node/cli/bin-entry.js +0 -3
- /package/dist/esm/node/{cli/bin.d.ts → api/APIOptions.js} +0 -0
|
@@ -54,16 +54,19 @@ function buildConfig() {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
|
-
config
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
config: {
|
|
58
|
+
order: 'post',
|
|
59
|
+
handler(config) {
|
|
60
|
+
assertNodeEnv_build();
|
|
61
|
+
isSsrBuild = viteIsSSR(config);
|
|
62
|
+
return {
|
|
63
|
+
build: {
|
|
64
|
+
outDir: resolveOutDir(config),
|
|
65
|
+
manifest: manifestTempFile,
|
|
66
|
+
copyPublicDir: !isSsrBuild
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
67
70
|
},
|
|
68
71
|
buildStart() {
|
|
69
72
|
assertNodeEnv_build();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const pluginName = "vike:commonConfig-1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const pluginName = 'vike:commonConfig-1';
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export { commonConfig };
|
|
2
|
+
import { mergeConfig } from 'vite';
|
|
2
3
|
import { assert, assertUsage, assertWarning, findPackageJson, isDocker } from '../utils.js';
|
|
3
4
|
import { assertRollupInput } from './buildConfig.js';
|
|
4
5
|
import { installRequireShim_setUserRootDir } from '@brillout/require-shim';
|
|
5
6
|
import pc from '@brillout/picocolors';
|
|
6
7
|
import path from 'path';
|
|
7
8
|
import { assertResolveAlias } from './commonConfig/assertResolveAlias.js';
|
|
8
|
-
|
|
9
|
+
import { pluginName } from './commonConfig/pluginName.js';
|
|
10
|
+
import { getEnvVarObject } from '../shared/getEnvVarObject.js';
|
|
9
11
|
function commonConfig() {
|
|
10
12
|
return [
|
|
11
13
|
{
|
|
@@ -30,21 +32,27 @@ function commonConfig() {
|
|
|
30
32
|
assertEsm(config.root);
|
|
31
33
|
}
|
|
32
34
|
},
|
|
33
|
-
// Override Vite's default port without overriding the user
|
|
34
35
|
config: {
|
|
35
36
|
order: 'post',
|
|
36
37
|
handler(configFromUser) {
|
|
37
|
-
|
|
38
|
+
// Change default port
|
|
39
|
+
let configFromVike = { server: {}, preview: {} };
|
|
38
40
|
setDefault('port', 3000, configFromUser, configFromVike);
|
|
41
|
+
// Set `--host` for Docker/Podman
|
|
39
42
|
if (isDocker()) {
|
|
40
43
|
setDefault('host', true, configFromUser, configFromVike);
|
|
41
44
|
}
|
|
45
|
+
// VITE_CONFIG
|
|
46
|
+
const configFromEnvVar = getEnvVarObject('VITE_CONFIG');
|
|
47
|
+
if (configFromEnvVar)
|
|
48
|
+
configFromVike = mergeConfig(configFromEnvVar, configFromVike);
|
|
42
49
|
return configFromVike;
|
|
43
50
|
}
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
53
|
];
|
|
47
54
|
}
|
|
55
|
+
// Override Vite's default value without overriding user settings
|
|
48
56
|
function setDefault(setting, value, configFromUser, configFromVike) {
|
|
49
57
|
if (configFromUser.server?.[setting] === undefined)
|
|
50
58
|
configFromVike.server[setting] = value;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// - Remove this file then revert this commit: https://github.com/vikejs/vike/commit/805a18974f13420a78fcc30fdd676696e405c3ca
|
|
3
3
|
// Workaround to make client-side bundles include the CSS imports living in server-side-only code.
|
|
4
4
|
// - This is needed for HTML-only pages, and React Server Components.
|
|
5
|
-
// - We recommend using the debug flag to get an idea of how this plugin works: `$ DEBUG=vike:extractAssets pnpm exec
|
|
5
|
+
// - We recommend using the debug flag to get an idea of how this plugin works: `$ DEBUG=vike:extractAssets pnpm exec vike build`. Then have a look at `dist/client/manifest.json` and see how `.page.server.js` entries have zero JavaScript but only CSS.
|
|
6
6
|
// - This appraoch supports import path aliases `vite.config.js#resolve.alias` https://vitejs.dev/config/#resolve-alias
|
|
7
7
|
export { extractAssetsPlugin };
|
|
8
8
|
export { extractAssetsRE };
|
|
@@ -46,7 +46,7 @@ function previewConfig() {
|
|
|
46
46
|
function assertDist() {
|
|
47
47
|
let { outDirRoot, outDirClient, outDirServer } = getOutDirs(config);
|
|
48
48
|
[outDirRoot, outDirClient, outDirServer].forEach((outDirAny) => {
|
|
49
|
-
assertUsage(fs.existsSync(outDirAny), `Cannot run ${pc.cyan('$
|
|
49
|
+
assertUsage(fs.existsSync(outDirAny), `Cannot run ${pc.cyan('$ vike preview')}: your app isn't built (the build directory ${pc.cyan(outDirAny)} is missing). Make sure to run ${pc.cyan('$ vike build')} before running ${pc.cyan('$ vike preview')}.`);
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
function addStatic404Middleware(middlewares) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { vite6HmrRegressionWorkaround };
|
|
2
|
+
// https://vite.dev/guide/migration (will be 404 after vite@7 release) > search for `hmrReload()`
|
|
3
|
+
// https://v6.vite.dev/guide/migration (will exist after vite@7 release) > search for `hmrReload()`
|
|
4
|
+
// Workaround seems to work for docs page /banner (which is HTML-only)
|
|
5
|
+
// But doesn't seem to work for /examples/render-modes/ (see https://github.com/vikejs/vike/pull/2069 commit `renable HMR test for HTML-only`)
|
|
6
|
+
function vite6HmrRegressionWorkaround() {
|
|
7
|
+
return {
|
|
8
|
+
name: 'vike:vite6HmrRegressionWorkaround',
|
|
9
|
+
enforce: 'post',
|
|
10
|
+
hotUpdate: {
|
|
11
|
+
order: 'post',
|
|
12
|
+
handler({ modules, server, timestamp }) {
|
|
13
|
+
if (this.environment.name !== 'ssr')
|
|
14
|
+
return;
|
|
15
|
+
let hasSsrOnlyModules = false;
|
|
16
|
+
const invalidatedModules = new Set();
|
|
17
|
+
for (const mod of modules) {
|
|
18
|
+
if (mod.id == null)
|
|
19
|
+
continue;
|
|
20
|
+
const clientModule = server.environments.client.moduleGraph.getModuleById(mod.id);
|
|
21
|
+
if (clientModule != null)
|
|
22
|
+
continue;
|
|
23
|
+
this.environment.moduleGraph.invalidateModule(mod, invalidatedModules, timestamp, true);
|
|
24
|
+
hasSsrOnlyModules = true;
|
|
25
|
+
}
|
|
26
|
+
if (hasSsrOnlyModules) {
|
|
27
|
+
server.ws.send({ type: 'full-reload' });
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { getEnvVarObject };
|
|
2
|
+
import pc from '@brillout/picocolors';
|
|
3
|
+
import { assertUsage, isObject } from '../utils.js';
|
|
4
|
+
import JSON5 from 'json5';
|
|
5
|
+
function getEnvVarObject(envVarName
|
|
6
|
+
/* Let's eventually implement this for Vike's config as well
|
|
7
|
+
| 'VIKE_CONFIG'
|
|
8
|
+
*/
|
|
9
|
+
) {
|
|
10
|
+
const valueStr = process.env[envVarName];
|
|
11
|
+
if (!valueStr)
|
|
12
|
+
return null;
|
|
13
|
+
let value;
|
|
14
|
+
try {
|
|
15
|
+
value = JSON5.parse(valueStr);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
console.error(err);
|
|
19
|
+
assertUsage(false, `Cannot parse ${envVarName} (see error above) because it's set to the following which isn't a valid JSON5 string: ${pc.bold(valueStr)}`);
|
|
20
|
+
}
|
|
21
|
+
assertUsage(value, `${envVarName} should define an object but it's ${pc.bold(String(value))} instead.`);
|
|
22
|
+
assertUsage(isObject(value), `${envVarName} should define an object but it's set to the following which isn't an object: ${pc.bold(valueStr)}`);
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Utils needed by Vike's Vite plugin
|
|
2
|
-
// We
|
|
1
|
+
// Utils needed by Vike's Vite plugin
|
|
2
|
+
// We call onLoad() here so that it's called even when only a subset of the plugin is loaded. (Making the assert() calls inside onLoad() a lot stronger.)
|
|
3
3
|
import { onLoad } from './onLoad.js';
|
|
4
4
|
onLoad();
|
|
5
5
|
// We tolerate the fact that we load all of the runtime utils even though some of it isn't needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { prerender } from '../api/prerender.js';
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// TODO/v1-release: remove this file
|
|
2
|
+
export { prerender } from '../api/prerender.js';
|
|
3
|
+
import { assertWarning } from '../../utils/assert.js';
|
|
4
|
+
import pc from '@brillout/picocolors';
|
|
5
|
+
assertWarning(false, `${pc.cyan("import { prerender } from 'vike/prerender'")} is deprecated in favor of ${pc.cyan("import { prerender } from 'vike/api'")}`, { onlyOnce: true });
|
|
@@ -1,36 +1,15 @@
|
|
|
1
1
|
export { runPrerenderFromAPI };
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { runPrerenderFromCLIPrerenderCommand };
|
|
3
|
+
export { runPrerenderFromAutoRun };
|
|
4
4
|
export { runPrerender_forceExit };
|
|
5
5
|
export type { PrerenderOptions };
|
|
6
6
|
import '../runtime/page-files/setup.js';
|
|
7
7
|
import type { InlineConfig } from 'vite';
|
|
8
|
-
type
|
|
8
|
+
import type { APIOptions } from '../api/APIOptions.js';
|
|
9
|
+
type PrerenderOptions = APIOptions & {
|
|
9
10
|
/** Initial `pageContext` values */
|
|
10
11
|
pageContextInit?: Record<string, unknown>;
|
|
11
|
-
/**
|
|
12
|
-
* The Vite config.
|
|
13
|
-
*
|
|
14
|
-
* This is optional and, if omitted, then Vite will automatically load your `vite.config.js`.
|
|
15
|
-
*
|
|
16
|
-
* We recommend to either omit this option or set it to `prerender({ viteConfig: { root }})`: the `vite.config.js` file living at `root` will be loaded.
|
|
17
|
-
*
|
|
18
|
-
* Alternatively you can:
|
|
19
|
-
* - Set `prerender({ viteConfig: { configFile: './path/to/vite.config.js' }})`.
|
|
20
|
-
* - Not load any `vite.config.js` file and, instead, use `prerender({ viteConfig: { configFile: false, ...myViteConfig }})` to programmatically define the entire Vite config.
|
|
21
|
-
*
|
|
22
|
-
* You can also load a `vite.config.js` file while overriding parts of the Vite config.
|
|
23
|
-
*
|
|
24
|
-
* See https://vitejs.dev/guide/api-javascript.html#inlineconfig for more information.
|
|
25
|
-
*
|
|
26
|
-
* @default { root: process.cwd() }
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
viteConfig?: InlineConfig;
|
|
30
|
-
/**
|
|
31
|
-
* @internal
|
|
32
|
-
* Don't use without having talked to a vike maintainer.
|
|
33
|
-
*/
|
|
12
|
+
/** @experimental Don't use without having talked to a vike maintainer. */
|
|
34
13
|
onPagePrerender?: Function;
|
|
35
14
|
/** @deprecated Define `prerender({ viteConfig: { root }})` instead. */
|
|
36
15
|
root?: string;
|
|
@@ -48,6 +27,6 @@ type PrerenderOptions = {
|
|
|
48
27
|
base?: string;
|
|
49
28
|
};
|
|
50
29
|
declare function runPrerenderFromAPI(options?: PrerenderOptions): Promise<void>;
|
|
51
|
-
declare function
|
|
52
|
-
declare function
|
|
30
|
+
declare function runPrerenderFromCLIPrerenderCommand(): Promise<void>;
|
|
31
|
+
declare function runPrerenderFromAutoRun(viteConfig: InlineConfig, forceExit: boolean): Promise<void>;
|
|
53
32
|
declare function runPrerender_forceExit(): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { runPrerenderFromAPI };
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { runPrerenderFromCLIPrerenderCommand };
|
|
3
|
+
export { runPrerenderFromAutoRun };
|
|
4
4
|
export { runPrerender_forceExit };
|
|
5
5
|
import '../runtime/page-files/setup.js';
|
|
6
6
|
import path from 'path';
|
|
@@ -28,32 +28,38 @@ import { getVikeConfig } from '../plugin/plugins/importUserCode/v1-design/getVik
|
|
|
28
28
|
import { logErrorHint } from '../runtime/renderPage/logErrorHint.js';
|
|
29
29
|
import { executeHook, isUserHookError } from '../../shared/hooks/executeHook.js';
|
|
30
30
|
import { getConfigValueBuildTime } from '../../shared/page-configs/getConfigValueBuildTime.js';
|
|
31
|
+
import { enhanceViteConfig } from '../api/enhanceViteConfig.js';
|
|
31
32
|
async function runPrerenderFromAPI(options = {}) {
|
|
32
33
|
await runPrerender(options, 'prerender()');
|
|
33
34
|
// - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
|
|
34
35
|
// - We don't use logErrorHint() because we don't have control over what happens with the error. For example, if the user land purposely swallows the error then the hint shouldn't be logged. Also, it's best if the hint is shown to the user *after* the error, but we cannot do/guarentee that.
|
|
35
36
|
}
|
|
36
|
-
async function
|
|
37
|
+
async function runPrerenderFromCLIPrerenderCommand() {
|
|
37
38
|
try {
|
|
38
|
-
await
|
|
39
|
+
const { viteConfigEnhanced } = await enhanceViteConfig(undefined, 'prerender');
|
|
40
|
+
await runPrerender({ viteConfig: viteConfigEnhanced }, '$ vike prerender');
|
|
39
41
|
}
|
|
40
42
|
catch (err) {
|
|
41
43
|
console.error(err);
|
|
44
|
+
// Error may come from user-land; we need to use logErrorHint()
|
|
42
45
|
logErrorHint(err);
|
|
43
46
|
process.exit(1);
|
|
44
47
|
}
|
|
48
|
+
runPrerender_forceExit();
|
|
45
49
|
}
|
|
46
|
-
async function
|
|
50
|
+
async function runPrerenderFromAutoRun(viteConfig, forceExit) {
|
|
47
51
|
try {
|
|
48
|
-
await runPrerender(
|
|
52
|
+
await runPrerender({ viteConfig });
|
|
49
53
|
}
|
|
50
54
|
catch (err) {
|
|
51
55
|
console.error(err);
|
|
52
56
|
logErrorHint(err);
|
|
53
57
|
process.exit(1);
|
|
54
58
|
}
|
|
59
|
+
if (forceExit)
|
|
60
|
+
runPrerender_forceExit();
|
|
55
61
|
}
|
|
56
|
-
async function runPrerender(options,
|
|
62
|
+
async function runPrerender(options = {}, standaloneTrigger) {
|
|
57
63
|
checkOutdatedOptions(options);
|
|
58
64
|
setGlobalContext_isPrerendering();
|
|
59
65
|
getHook_setIsPrerenderering();
|
|
@@ -70,8 +76,8 @@ async function runPrerender(options, manuallyTriggered) {
|
|
|
70
76
|
const { root } = viteConfig;
|
|
71
77
|
const prerenderConfig = configVike.prerender;
|
|
72
78
|
if (!prerenderConfig) {
|
|
73
|
-
assert(
|
|
74
|
-
assertWarning(prerenderConfig, `You're executing ${pc.cyan(
|
|
79
|
+
assert(standaloneTrigger);
|
|
80
|
+
assertWarning(prerenderConfig, `You're executing ${pc.cyan(standaloneTrigger)} but the config ${pc.cyan('prerender')} isn't set to true`, {
|
|
75
81
|
onlyOnce: true
|
|
76
82
|
});
|
|
77
83
|
}
|
|
@@ -216,7 +216,7 @@ function assertBuildEntries(buildEntries, isPreRendering) {
|
|
|
216
216
|
const errMsg = [
|
|
217
217
|
`You are tyring to run`,
|
|
218
218
|
isPreRendering ? 'pre-rendering' : 'the server for production',
|
|
219
|
-
`but your app isn't built yet. Run ${pc.cyan('$
|
|
219
|
+
`but your app isn't built yet. Run ${pc.cyan('$ vike build')} before `,
|
|
220
220
|
isPreRendering ? 'pre-rendering.' : 'running the server.'
|
|
221
221
|
].join(' ');
|
|
222
222
|
assertUsage(buildEntries, errMsg);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
// Utils needed by Vike's server runtime
|
|
1
2
|
import '../../utils/trackLogs.js';
|
|
2
|
-
// We
|
|
3
|
+
// We call onLoad() here so that it's called even when only a subset of the runtime is loaded. (Making the assert() calls inside onLoad() a lot stronger.)
|
|
3
4
|
import { onLoad } from './onLoad.js';
|
|
4
5
|
onLoad();
|
|
5
6
|
export * from '../../utils/assert.js';
|
|
@@ -52,23 +52,17 @@ type ConfigVikeUserProvided = {
|
|
|
52
52
|
*/
|
|
53
53
|
partial?: boolean;
|
|
54
54
|
/**
|
|
55
|
-
* Disable the automatic initiation of the pre-rendering process when running `$
|
|
55
|
+
* Disable the automatic initiation of the pre-rendering process when running `$ vike build`.
|
|
56
56
|
*
|
|
57
57
|
* Use this if you want to programmatically initiate the pre-rendering process instead.
|
|
58
58
|
*
|
|
59
|
-
* https://vike.dev/prerender
|
|
59
|
+
* https://vike.dev/api#prerender
|
|
60
60
|
*
|
|
61
61
|
* @default false
|
|
62
62
|
*/
|
|
63
63
|
disableAutoRun?: boolean;
|
|
64
64
|
};
|
|
65
|
-
/**
|
|
66
|
-
* Disable the automatic chaining of build steps.
|
|
67
|
-
*
|
|
68
|
-
* https://vike.dev/disableAutoFullBuild
|
|
69
|
-
*
|
|
70
|
-
* @default false
|
|
71
|
-
*/
|
|
65
|
+
/** @deprecated See https://vike.dev/disableAutoFullBuild */
|
|
72
66
|
disableAutoFullBuild?: boolean | 'prerender';
|
|
73
67
|
/** The Base URL of your server.
|
|
74
68
|
*
|
|
@@ -345,7 +345,7 @@ type ConfigBuiltIn = {
|
|
|
345
345
|
*/
|
|
346
346
|
meta?: ConfigMeta | ImportString;
|
|
347
347
|
/**
|
|
348
|
-
* @experimental
|
|
348
|
+
* @experimental DON'T USE: the API *will* have breaking changes upon any minor version release.
|
|
349
349
|
*
|
|
350
350
|
* Prefetch pages/links.
|
|
351
351
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.214";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.
|
|
2
|
+
export const PROJECT_VERSION = '0.4.214';
|
|
@@ -34,7 +34,7 @@ function assertNodeEnv_runtime(isViteDev) {
|
|
|
34
34
|
return;
|
|
35
35
|
const nodeEnvDesc = getNodeEnvDesc();
|
|
36
36
|
// TODO: make it assertUsage() again once #1528 is implemented.
|
|
37
|
-
const errMsg = `Running ${isViteDev ? pc.cyan('$
|
|
37
|
+
const errMsg = `Running ${isViteDev ? pc.cyan('$ vike dev') : 'app in production'} while the ${nodeEnvDesc} which is contradictory, see https://vike.dev/NODE_ENV`;
|
|
38
38
|
assertWarning(false, errMsg, { onlyOnce: true });
|
|
39
39
|
}
|
|
40
40
|
function assertNodeEnv_onVikePluginLoad() {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from 'fs/promises'
|
|
2
|
+
import path from 'path'
|
|
3
|
+
const distCjs = 'dist/cjs'
|
|
4
|
+
|
|
5
|
+
main()
|
|
6
|
+
|
|
7
|
+
async function main() {
|
|
8
|
+
await generatePackageJson()
|
|
9
|
+
await shimImportMetaUrl()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async function generatePackageJson() {
|
|
13
|
+
await fs.writeFile(distCjs + '/package.json', '{ "type": "commonjs" }\n', 'utf8')
|
|
14
|
+
console.log(`✅ ${distCjs}/package.json generated`)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async function shimImportMetaUrl() {
|
|
18
|
+
const files = await getFiles(distCjs)
|
|
19
|
+
files.forEach(replaceImportMetaWithFilename)
|
|
20
|
+
console.log(`✅ ${distCjs}/ shimmed import.meta.url`)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async function replaceImportMetaWithFilename(filePath) {
|
|
24
|
+
const fileContent = await fs.readFile(filePath, 'utf8')
|
|
25
|
+
const modifiedContent = fileContent.replaceAll('import.meta.url', '`file://${__filename}`')
|
|
26
|
+
await fs.writeFile(filePath, modifiedContent, 'utf8')
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async function getFiles(directoryPath) {
|
|
30
|
+
const files = []
|
|
31
|
+
for (const file of await fs.readdir(directoryPath)) {
|
|
32
|
+
const filePath = path.join(directoryPath, file)
|
|
33
|
+
const stats = await fs.stat(filePath)
|
|
34
|
+
if (stats.isDirectory()) {
|
|
35
|
+
files.push(...(await getFiles(filePath)))
|
|
36
|
+
} else if (stats.isFile() && filePath.endsWith('.js')) {
|
|
37
|
+
files.push(filePath)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return files
|
|
41
|
+
}
|
package/modifyUrl.js
ADDED
package/node/cli/bin.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.214",
|
|
4
4
|
"repository": "https://github.com/vikejs/vike",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -42,6 +42,12 @@
|
|
|
42
42
|
"types": "./dist/esm/node/cli/index.d.ts",
|
|
43
43
|
"default": "./dist/esm/node/cli/index.js"
|
|
44
44
|
},
|
|
45
|
+
"./api": {
|
|
46
|
+
"require": "./dist/cjs/node/api/index.js",
|
|
47
|
+
"node": "./dist/esm/node/api/index.js",
|
|
48
|
+
"types": "./dist/esm/node/api/index.d.ts",
|
|
49
|
+
"default": "./dist/esm/node/api/index.js"
|
|
50
|
+
},
|
|
45
51
|
"./prerender": {
|
|
46
52
|
"require": "./dist/cjs/node/prerender/index.js",
|
|
47
53
|
"node": "./dist/esm/node/prerender/index.js",
|
|
@@ -131,8 +137,10 @@
|
|
|
131
137
|
"es-module-lexer": "^1.0.0",
|
|
132
138
|
"esbuild": "^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0",
|
|
133
139
|
"fast-glob": "^3.0.0",
|
|
140
|
+
"json5": "^2.0.0",
|
|
134
141
|
"semver": "^7.0.0",
|
|
135
|
-
"source-map-support": "^0.5.0"
|
|
142
|
+
"source-map-support": "^0.5.0",
|
|
143
|
+
"vite": ">=5.1.0"
|
|
136
144
|
},
|
|
137
145
|
"peerDependencies": {
|
|
138
146
|
"react-streaming": ">=0.3.42",
|
|
@@ -141,20 +149,26 @@
|
|
|
141
149
|
"peerDependenciesMeta": {
|
|
142
150
|
"react-streaming": {
|
|
143
151
|
"optional": true
|
|
152
|
+
},
|
|
153
|
+
"vite": {
|
|
154
|
+
"optional": true
|
|
144
155
|
}
|
|
145
156
|
},
|
|
146
157
|
"engines": {
|
|
147
158
|
"node": ">=18.0.0"
|
|
148
159
|
},
|
|
149
160
|
"license": "MIT",
|
|
150
|
-
"description": "
|
|
161
|
+
"description": "The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.",
|
|
151
162
|
"keywords": [
|
|
163
|
+
"vite-plugin",
|
|
164
|
+
"ssr",
|
|
165
|
+
"vite",
|
|
152
166
|
"react",
|
|
153
167
|
"vue",
|
|
154
168
|
"solid",
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
169
|
+
"next",
|
|
170
|
+
"remix",
|
|
171
|
+
"vike"
|
|
158
172
|
],
|
|
159
173
|
"typesVersions": {
|
|
160
174
|
"*": {
|
|
@@ -176,6 +190,9 @@
|
|
|
176
190
|
"cli": [
|
|
177
191
|
"./dist/esm/node/cli/index.d.ts"
|
|
178
192
|
],
|
|
193
|
+
"api": [
|
|
194
|
+
"./dist/esm/node/api/index.d.ts"
|
|
195
|
+
],
|
|
179
196
|
"prerender": [
|
|
180
197
|
"./dist/esm/node/prerender/index.d.ts"
|
|
181
198
|
],
|
|
@@ -206,21 +223,28 @@
|
|
|
206
223
|
"types": "./dist/esm/node/runtime/index-deprecated.d.ts",
|
|
207
224
|
"type": "module",
|
|
208
225
|
"bin": {
|
|
209
|
-
"vike": "./node/cli/bin
|
|
226
|
+
"vike": "./node/cli/bin.js"
|
|
210
227
|
},
|
|
211
228
|
"files": [
|
|
212
|
-
"
|
|
213
|
-
"
|
|
214
|
-
"
|
|
215
|
-
"
|
|
216
|
-
"
|
|
217
|
-
"
|
|
218
|
-
"
|
|
219
|
-
"
|
|
220
|
-
"
|
|
221
|
-
"
|
|
222
|
-
"__internal.js",
|
|
223
|
-
"__internal/setup.js"
|
|
229
|
+
"./node/cli/bin.js",
|
|
230
|
+
"./dist/",
|
|
231
|
+
"./abort.js",
|
|
232
|
+
"./api.js",
|
|
233
|
+
"./client.js",
|
|
234
|
+
"./client/router.js",
|
|
235
|
+
"./cli.js",
|
|
236
|
+
"./dist-cjs-fixup.mjs",
|
|
237
|
+
"./getPageContext.js",
|
|
238
|
+
"./__internal.js",
|
|
239
|
+
"./__internal/loadImportBuild.js",
|
|
240
|
+
"./__internal/setup.js",
|
|
241
|
+
"./modifyUrl.js",
|
|
242
|
+
"./plugin.js",
|
|
243
|
+
"./prerender.js",
|
|
244
|
+
"./RenderErrorPage.js",
|
|
245
|
+
"./routing.js",
|
|
246
|
+
"./server.js",
|
|
247
|
+
"./types.js"
|
|
224
248
|
],
|
|
225
249
|
"devDependencies": {
|
|
226
250
|
"@biomejs/biome": "^1.5.3",
|
package/plugin.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
//
|
|
2
|
-
export * from './dist/esm/node/plugin/index.
|
|
3
|
-
export { default } from './dist/esm/node/plugin/index.
|
|
1
|
+
// Some tools still need this as of January 2025
|
|
2
|
+
export * from './dist/esm/node/plugin/index.js'
|
|
3
|
+
export { default } from './dist/esm/node/plugin/index.js'
|
package/prerender.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
//
|
|
2
|
-
export * from './dist/esm/node/prerender/index.
|
|
3
|
-
export { default } from './dist/esm/node/prerender/index.
|
|
1
|
+
// Some tools still need this as of January 2025
|
|
2
|
+
export * from './dist/esm/node/prerender/index.js'
|
|
3
|
+
export { default } from './dist/esm/node/prerender/index.js'
|
package/routing.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
//
|
|
2
|
-
export * from './dist/shared/route/routing.
|
|
3
|
-
export { default } from './dist/shared/route/routing.
|
|
1
|
+
// Some tools still need this as of January 2025
|
|
2
|
+
export * from './dist/esm/shared/route/routing.js'
|
|
3
|
+
export { default } from './dist/esm/shared/route/routing.js'
|
package/server.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
//
|
|
2
|
-
export * from './dist/esm/node/runtime/index.
|
|
3
|
-
export { default } from './dist/esm/node/runtime/index.
|
|
1
|
+
// Some tools still need this as of January 2025
|
|
2
|
+
export * from './dist/esm/node/runtime/index.js'
|
|
3
|
+
export { default } from './dist/esm/node/runtime/index.js'
|
package/types.js
ADDED