vike 0.4.226-commit-8f5c172 → 0.4.227

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.
@@ -62,14 +62,19 @@ async function cmdDev() {
62
62
  const startTime = performance.now();
63
63
  try {
64
64
  const { viteServer } = await (0, index_js_1.dev)();
65
- await viteServer.listen();
66
- const info = viteServer.config.logger.info;
67
- const startupDurationString = picocolors_1.default.dim(`ready in ${picocolors_1.default.reset(picocolors_1.default.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
68
- const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
69
- info(` ${picocolors_1.default.yellow(`${picocolors_1.default.bold('Vike')} v${utils_js_1.PROJECT_VERSION}`)} ${startupDurationString}\n`, {
70
- clear: !hasExistingLogs
71
- });
72
- viteServer.printUrls();
65
+ if (viteServer.httpServer) {
66
+ await viteServer.listen();
67
+ const info = viteServer.config.logger.info;
68
+ const startupDurationString = picocolors_1.default.dim(`ready in ${picocolors_1.default.reset(picocolors_1.default.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
69
+ const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
70
+ info(` ${picocolors_1.default.yellow(`${picocolors_1.default.bold('Vike')} v${utils_js_1.PROJECT_VERSION}`)} ${startupDurationString}\n`, {
71
+ clear: !hasExistingLogs
72
+ });
73
+ viteServer.printUrls();
74
+ }
75
+ else {
76
+ // vike-server => middleware mode => `viteServer.httpServer === null`
77
+ }
73
78
  viteServer.bindCLIShortcuts({ print: true });
74
79
  }
75
80
  catch (err) {
@@ -38,20 +38,24 @@ function previewConfig() {
38
38
  config.appType = 'mpa'
39
39
  */
40
40
  return () => {
41
- assertDist();
41
+ const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(config._vikeConfigObject);
42
+ const { isPrerenderingEnabledForAllPages, isPrerenderingEnabled } = prerenderConfigGlobal;
43
+ assertDist(isPrerenderingEnabledForAllPages);
42
44
  // We cannot re-use Vite's static middleware: https://github.com/vitejs/vite/pull/14836#issuecomment-1788540300
43
45
  addStaticAssetsMiddleware(server.middlewares);
44
- const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(config._vikeConfigObject);
45
- if (!prerenderConfigGlobal.isPrerenderingEnabledForAllPages) {
46
- (0, addSsrMiddleware_js_1.addSsrMiddleware)(server.middlewares, config, true, prerenderConfigGlobal.isPrerenderingEnabled);
46
+ if (!isPrerenderingEnabledForAllPages) {
47
+ (0, addSsrMiddleware_js_1.addSsrMiddleware)(server.middlewares, config, true, isPrerenderingEnabled);
47
48
  }
48
49
  addStatic404Middleware(server.middlewares);
49
50
  };
50
51
  }
51
52
  };
52
- function assertDist() {
53
+ function assertDist(isPrerenderingEnabledForAllPages) {
53
54
  const { outDirRoot, outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config);
54
- [outDirRoot, outDirClient, outDirServer].forEach((outDirAny) => {
55
+ const dirS = [outDirRoot, outDirClient];
56
+ if (!isPrerenderingEnabledForAllPages)
57
+ dirS.push(outDirServer);
58
+ dirS.forEach((outDirAny) => {
55
59
  (0, utils_js_1.assertUsage)(fs_1.default.existsSync(outDirAny), `Cannot run ${picocolors_1.default.cyan('$ vike preview')}: your app isn't built (the build directory ${picocolors_1.default.cyan(outDirAny)} is missing). Make sure to run ${picocolors_1.default.cyan('$ vike build')} before running ${picocolors_1.default.cyan('$ vike preview')}.`);
56
60
  });
57
61
  }
@@ -12,6 +12,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
12
12
  const prerenderConfigGlobal = {
13
13
  partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
14
14
  noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? false,
15
+ keepDistServer: pickFirst(prerenderSettings.map((c) => c.keepDistServer)) ?? false,
15
16
  parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
16
17
  disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
17
18
  };
@@ -69,6 +69,7 @@ const getOutDirs_js_1 = require("../plugin/shared/getOutDirs.js");
69
69
  const context_js_2 = require("../cli/context.js");
70
70
  const isViteCliCall_js_1 = require("../plugin/shared/isViteCliCall.js");
71
71
  const commonConfig_js_1 = require("../plugin/plugins/commonConfig.js");
72
+ const node_fs_1 = __importDefault(require("node:fs"));
72
73
  async function runPrerenderFromAPI(options = {}) {
73
74
  return await runPrerender(options, 'prerender()');
74
75
  // - 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.
@@ -116,7 +117,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
116
117
  const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(viteConfig);
117
118
  const vike = (0, commonConfig_js_1.getVikeConfigPublic)(viteConfig);
118
119
  (0, utils_js_1.assert)(vike.prerenderContext.isPrerenderingEnabled);
119
- const { outDirClient } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
120
+ const { outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
120
121
  const { root } = viteConfig;
121
122
  const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
122
123
  validatePrerenderConfig(prerenderConfigGlobal);
@@ -160,6 +161,9 @@ async function runPrerender(options = {}, standaloneTrigger) {
160
161
  await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
161
162
  const prerenderContextPublic = makePublic(prerenderContext);
162
163
  (0, utils_js_1.objectAssign)(vike.prerenderContext, prerenderContextPublic);
164
+ if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
165
+ node_fs_1.default.rmSync(outDirServer, { recursive: true });
166
+ }
163
167
  return { viteConfig };
164
168
  }
165
169
  async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext) {
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.226-commit-8f5c172';
5
+ exports.PROJECT_VERSION = '0.4.227';
@@ -24,14 +24,19 @@ async function cmdDev() {
24
24
  const startTime = performance.now();
25
25
  try {
26
26
  const { viteServer } = await dev();
27
- await viteServer.listen();
28
- const info = viteServer.config.logger.info;
29
- const startupDurationString = pc.dim(`ready in ${pc.reset(pc.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
30
- const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
31
- info(` ${pc.yellow(`${pc.bold('Vike')} v${PROJECT_VERSION}`)} ${startupDurationString}\n`, {
32
- clear: !hasExistingLogs
33
- });
34
- viteServer.printUrls();
27
+ if (viteServer.httpServer) {
28
+ await viteServer.listen();
29
+ const info = viteServer.config.logger.info;
30
+ const startupDurationString = pc.dim(`ready in ${pc.reset(pc.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
31
+ const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
32
+ info(` ${pc.yellow(`${pc.bold('Vike')} v${PROJECT_VERSION}`)} ${startupDurationString}\n`, {
33
+ clear: !hasExistingLogs
34
+ });
35
+ viteServer.printUrls();
36
+ }
37
+ else {
38
+ // vike-server => middleware mode => `viteServer.httpServer === null`
39
+ }
35
40
  viteServer.bindCLIShortcuts({ print: true });
36
41
  }
37
42
  catch (err) {
@@ -33,20 +33,24 @@ function previewConfig() {
33
33
  config.appType = 'mpa'
34
34
  */
35
35
  return () => {
36
- assertDist();
36
+ const prerenderConfigGlobal = resolvePrerenderConfigGlobal(config._vikeConfigObject);
37
+ const { isPrerenderingEnabledForAllPages, isPrerenderingEnabled } = prerenderConfigGlobal;
38
+ assertDist(isPrerenderingEnabledForAllPages);
37
39
  // We cannot re-use Vite's static middleware: https://github.com/vitejs/vite/pull/14836#issuecomment-1788540300
38
40
  addStaticAssetsMiddleware(server.middlewares);
39
- const prerenderConfigGlobal = resolvePrerenderConfigGlobal(config._vikeConfigObject);
40
- if (!prerenderConfigGlobal.isPrerenderingEnabledForAllPages) {
41
- addSsrMiddleware(server.middlewares, config, true, prerenderConfigGlobal.isPrerenderingEnabled);
41
+ if (!isPrerenderingEnabledForAllPages) {
42
+ addSsrMiddleware(server.middlewares, config, true, isPrerenderingEnabled);
42
43
  }
43
44
  addStatic404Middleware(server.middlewares);
44
45
  };
45
46
  }
46
47
  };
47
- function assertDist() {
48
+ function assertDist(isPrerenderingEnabledForAllPages) {
48
49
  const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config);
49
- [outDirRoot, outDirClient, outDirServer].forEach((outDirAny) => {
50
+ const dirS = [outDirRoot, outDirClient];
51
+ if (!isPrerenderingEnabledForAllPages)
52
+ dirS.push(outDirServer);
53
+ dirS.forEach((outDirAny) => {
50
54
  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')}.`);
51
55
  });
52
56
  }
@@ -5,6 +5,7 @@ import type { PageConfigBuildTime } from '../../shared/page-configs/PageConfig.j
5
5
  declare function resolvePrerenderConfigGlobal(vikeConfig: VikeConfigObject): {
6
6
  partial: boolean;
7
7
  noExtraDir: boolean;
8
+ keepDistServer: boolean;
8
9
  parallel: number | boolean;
9
10
  disableAutoRun: boolean;
10
11
  } & {
@@ -10,6 +10,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
10
10
  const prerenderConfigGlobal = {
11
11
  partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
12
12
  noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? false,
13
+ keepDistServer: pickFirst(prerenderSettings.map((c) => c.keepDistServer)) ?? false,
13
14
  parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
14
15
  disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
15
16
  };
@@ -31,6 +31,7 @@ import { getOutDirs } from '../plugin/shared/getOutDirs.js';
31
31
  import { isVikeCli } from '../cli/context.js';
32
32
  import { isViteCliCall } from '../plugin/shared/isViteCliCall.js';
33
33
  import { getVikeConfigPublic } from '../plugin/plugins/commonConfig.js';
34
+ import fs from 'node:fs';
34
35
  async function runPrerenderFromAPI(options = {}) {
35
36
  return await runPrerender(options, 'prerender()');
36
37
  // - 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.
@@ -78,7 +79,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
78
79
  const vikeConfig = await getVikeConfig(viteConfig);
79
80
  const vike = getVikeConfigPublic(viteConfig);
80
81
  assert(vike.prerenderContext.isPrerenderingEnabled);
81
- const { outDirClient } = getOutDirs(viteConfig);
82
+ const { outDirClient, outDirServer } = getOutDirs(viteConfig);
82
83
  const { root } = viteConfig;
83
84
  const prerenderConfigGlobal = resolvePrerenderConfigGlobal(vikeConfig);
84
85
  validatePrerenderConfig(prerenderConfigGlobal);
@@ -122,6 +123,9 @@ async function runPrerender(options = {}, standaloneTrigger) {
122
123
  await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
123
124
  const prerenderContextPublic = makePublic(prerenderContext);
124
125
  objectAssign(vike.prerenderContext, prerenderContextPublic);
126
+ if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
127
+ fs.rmSync(outDirServer, { recursive: true });
128
+ }
125
129
  return { viteConfig };
126
130
  }
127
131
  async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext) {
@@ -308,6 +308,16 @@ type ConfigBuiltIn = {
308
308
  * @default true
309
309
  */
310
310
  enable?: boolean | null;
311
+ /**
312
+ * If you pre-render all your pages then Vike removes the `dist/server/` directory after pre-rendering has finished.
313
+ *
314
+ * If you set this setting to `true` then Vike won't remove the `dist/server/` directory.
315
+ *
316
+ * https://vike.dev/prerender#keepDistServer
317
+ *
318
+ * @default false
319
+ */
320
+ keepDistServer?: boolean;
311
321
  };
312
322
  /**
313
323
  * Install Vike extensions.
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.226-commit-8f5c172";
1
+ export declare const PROJECT_VERSION: "0.4.227";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.226-commit-8f5c172';
2
+ export const PROJECT_VERSION = '0.4.227';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.226-commit-8f5c172",
3
+ "version": "0.4.227",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {