vike 0.4.261 → 0.4.263

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.
@@ -1,5 +1,6 @@
1
1
  export { resolvePrerenderConfigGlobal };
2
2
  export { resolvePrerenderConfigLocal };
3
+ export { isDistServerRemoved };
3
4
  import { VikeConfigInternal } from '../vite/shared/resolveVikeConfigInternal.js';
4
5
  import type { PageConfigBuildTime } from '../../types/PageConfig.js';
5
6
  declare function resolvePrerenderConfigGlobal(vikeConfig: Pick<VikeConfigInternal, 'config' | '_pageConfigs' | '_from'>): Promise<{
@@ -7,13 +8,17 @@ declare function resolvePrerenderConfigGlobal(vikeConfig: Pick<VikeConfigInterna
7
8
  noExtraDir: boolean | null;
8
9
  parallel: number | boolean;
9
10
  disableAutoRun: boolean;
11
+ keepDistServer: boolean;
10
12
  } & {
11
13
  defaultLocalValue: boolean;
12
14
  isPrerenderingEnabled: boolean;
13
15
  isPrerenderingEnabledForAllPages: boolean;
14
16
  redirects: boolean;
15
- keepDistServer: boolean;
16
17
  }>;
17
18
  declare function resolvePrerenderConfigLocal(pageConfig: PageConfigBuildTime): Promise<{
18
19
  value: boolean;
19
20
  } | null>;
21
+ declare function isDistServerRemoved(prerenderConfigGlobal: {
22
+ isPrerenderingEnabledForAllPages: boolean;
23
+ keepDistServer: boolean;
24
+ }): boolean;
@@ -1,5 +1,6 @@
1
1
  export { resolvePrerenderConfigGlobal };
2
2
  export { resolvePrerenderConfigLocal };
3
+ export { isDistServerRemoved };
3
4
  import { assert, assertUsage } from '../../utils/assert.js';
4
5
  import { isArray } from '../../utils/isArray.js';
5
6
  import { isObject } from '../../utils/isObject.js';
@@ -19,6 +20,7 @@ async function resolvePrerenderConfigGlobal(vikeConfig) {
19
20
  noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? null,
20
21
  parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
21
22
  disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false,
23
+ keepDistServer: pickFirst(prerenderSettings.map((c) => c.keepDistServer)) ?? false,
22
24
  };
23
25
  let defaultLocalValue = false;
24
26
  {
@@ -45,9 +47,6 @@ async function resolvePrerenderConfigGlobal(vikeConfig) {
45
47
  isPrerenderingEnabled,
46
48
  isPrerenderingEnabledForAllPages,
47
49
  redirects: pickFirst(prerenderSettings.map((c) => c.redirects)) ?? isPrerenderingEnabledForAllPages,
48
- keepDistServer: !isPrerenderingEnabledForAllPages
49
- ? true
50
- : (pickFirst(prerenderSettings.map((c) => c.keepDistServer)) ?? false),
51
50
  });
52
51
  // TO-DO/next-major-release: remove
53
52
  if (vikeConfig._pageConfigs.length === 0 && defaultLocalValue)
@@ -69,6 +68,13 @@ async function resolvePrerenderConfigLocal(pageConfig) {
69
68
  const prerenderConfigLocal = { value };
70
69
  return prerenderConfigLocal;
71
70
  }
71
+ // Whether pre-rendering removes dist/server/ once it's done
72
+ // https://vike.dev/prerender#keepDistServer
73
+ function isDistServerRemoved(prerenderConfigGlobal) {
74
+ if (!prerenderConfigGlobal.isPrerenderingEnabledForAllPages)
75
+ return false;
76
+ return !prerenderConfigGlobal.keepDistServer;
77
+ }
72
78
  function isObject2(value) {
73
79
  return typeof value === 'object' && value !== null;
74
80
  }
@@ -39,7 +39,7 @@ import { noRouteMatch } from '../../shared-server-client/route/noRouteMatch.js';
39
39
  import { getVikeConfigInternal } from '../vite/shared/resolveVikeConfigInternal.js';
40
40
  import { execHookSingleWithoutPageContext, isUserHookError } from '../../shared-server-client/hooks/execHook.js';
41
41
  import { setWasPrerenderRun } from './context.js';
42
- import { resolvePrerenderConfigGlobal, resolvePrerenderConfigLocal } from './resolvePrerenderConfig.js';
42
+ import { resolvePrerenderConfigGlobal, resolvePrerenderConfigLocal, isDistServerRemoved, } from './resolvePrerenderConfig.js';
43
43
  import { getOutDirsAllFromRootNormalized } from '../vite/shared/getOutDirs.js';
44
44
  import fs from 'node:fs';
45
45
  import { getPublicProxy } from '../../shared-server-client/getPublicProxy.js';
@@ -128,7 +128,7 @@ async function runPrerender(options = {}, trigger) {
128
128
  const prerenderContextPublic = getPrerenderContextPublic(prerenderContext);
129
129
  objectAssign(vikeConfig.prerenderContext, prerenderContextPublic, true);
130
130
  setGlobalContext_prerenderContext(prerenderContextPublic);
131
- if (!prerenderConfigGlobal.keepDistServer) {
131
+ if (isDistServerRemoved(prerenderConfigGlobal)) {
132
132
  fs.rmSync(outDirServer, { recursive: true });
133
133
  }
134
134
  }
@@ -11,6 +11,7 @@ import { assertResolveAlias } from './pluginCommon/assertResolveAlias.js';
11
11
  import { getVikeConfigInternal, setVikeConfigContext } from '../shared/resolveVikeConfigInternal.js';
12
12
  import { assertViteRoot, getViteRoot, normalizeViteRoot } from '../../api/resolveViteConfigUser.js';
13
13
  import { temp_disablePrerenderAutoRun } from '../../prerender/context.js';
14
+ import { resolvePrerenderConfigGlobal, isDistServerRemoved } from '../../prerender/resolvePrerenderConfig.js';
14
15
  import { version as viteVersionVike } from 'vite';
15
16
  import '../assertEnvVite.js';
16
17
  const pluginName = 'vike:pluginCommon';
@@ -43,6 +44,7 @@ function pluginCommon(vikeVitePluginOptions) {
43
44
  configVikePromise: Promise.resolve({
44
45
  prerender: vikeConfig.prerenderContext.isPrerenderingEnabled,
45
46
  }),
47
+ ...(await disableAutoImportIfPrerendering(isBuild)),
46
48
  };
47
49
  },
48
50
  },
@@ -165,9 +167,21 @@ function temp_supportOldInterface(config) {
165
167
  assert(false);
166
168
  }
167
169
  // Only emit dist/server/entry.mjs if necessary
170
+ // TO-DO/eventually: also do this when using Universal Deploy
168
171
  async function emitServerEntryOnlyIfNeeded(config) {
169
172
  const vikeConfig = await getVikeConfigInternal();
170
173
  if (config.vitePluginServerEntry?.inject && !vikeConfig.prerenderContext.isPrerenderingEnabled) {
174
+ // Might be set too late: https://github.com/vikejs/vike/pull/3485
171
175
  config.vitePluginServerEntry.disableServerEntryEmit = true;
172
176
  }
173
177
  }
178
+ // Don't let @brillout/vite-plugin-server-entry's autoImporter.js import dist/server/entry.js when pre-rendering is going to remove dist/server/ — a dangling import crashes runtimes consulting it
179
+ async function disableAutoImportIfPrerendering(isBuild) {
180
+ if (!isBuild)
181
+ return;
182
+ const vikeConfig = await getVikeConfigInternal();
183
+ const prerenderConfigGlobal = await resolvePrerenderConfigGlobal(vikeConfig);
184
+ if (isDistServerRemoved(prerenderConfigGlobal)) {
185
+ return { vitePluginServerEntry: { disableAutoImport: true } };
186
+ }
187
+ }
@@ -28,7 +28,7 @@ description: "Vike documentation index — a compact overview of Vike's docs. Co
28
28
 
29
29
  See https://vike.dev/llms.txt
30
30
  `;
31
- const commitMessage = (isUpdate) => `${isUpdate ? 'Update' : 'Add'} Vike skill — see https://vike.dev/ai#skill`;
31
+ const commitMessage = (isUpdate) => `${isUpdate ? 'Update' : 'Add'} Vike skill — ${pc.underline('https://vike.dev/ai#skill')}`;
32
32
  // Automatically add vike/SKILL.md to skills/ directories (e.g. .claude/skills/ and .agents/skills/) of the user's Git repository (and Git-commit it) — so that AI agents (Claude Code, Codex, Cursor, Gemini CLI, ...) automatically pick it up.
33
33
  // https://vike.dev/ai#skill
34
34
  async function autoAddVikeSkill(userRootDir) {
@@ -65,7 +65,7 @@ async function autoAddVikeSkillUnsafe(userRootDir) {
65
65
  return;
66
66
  assertInfo(false, `${res.isUpdate ? 'Updated' : 'Created'}${res.isCommitted ? ' and Git-committed' : ''} ${res.files
67
67
  .map((f) => pc.cyan(f.filePathRelative))
68
- .join(', ')} — see https://vike.dev/ai#skill`, { onlyOnce: false });
68
+ .join(', ')} — ${pc.underline('https://vike.dev/ai#skill')}`, { onlyOnce: false });
69
69
  }
70
70
  // https://vike.dev/ai#skill
71
71
  function getConfigValueAiSkill(vikeConfig) {
@@ -137,7 +137,7 @@ async function gitCommit(gitRootDir, files) {
137
137
  // Don't Git-commit the skill files that the user chose to .gitignore — `$ git check-ignore` succeeds if the file is ignored
138
138
  const filesToCommit = [];
139
139
  for (const file of files) {
140
- const resCheckIgnore = await runGitCommand(['check-ignore', '-q', '--', file.filePathRelative], gitRootDir);
140
+ const resCheckIgnore = await runGitCommand(['check-ignore', '--quiet', '--', file.filePathRelative], gitRootDir);
141
141
  if ('err' in resCheckIgnore)
142
142
  filesToCommit.push(file);
143
143
  }
@@ -149,10 +149,14 @@ async function gitCommit(gitRootDir, files) {
149
149
  return false;
150
150
  const isUpdate = filesToCommit.some((f) => f.isUpdate);
151
151
  const resCommit = await runGitCommand([
152
+ '-c',
153
+ 'user.name=Vike',
154
+ '-c',
155
+ 'user.email=no-reply@vike.dev',
152
156
  'commit',
153
157
  // Skip Git hooks (e.g. slow or failing pre-commit hooks)
154
158
  '--no-verify',
155
- '-m',
159
+ '--message',
156
160
  commitMessage(isUpdate),
157
161
  // Only commit the skill files — never commit files staged by the user
158
162
  '--',
@@ -37,18 +37,9 @@ function pluginDev() {
37
37
  },
38
38
  },
39
39
  configureServer: {
40
- handler(server) {
41
- // Apply late — after the dev server is up and running, and after the first page requests — so that it never slows down dev start.
42
- const run = () => {
43
- setTimeoutUnref(() => autoAddVikeSkill(config.root), 60 * 1000);
44
- };
45
- if (server.httpServer) {
46
- server.httpServer.once('listening', run);
47
- }
48
- else {
49
- // Middleware mode: the HTTP server is owned by the user.
50
- run();
51
- }
40
+ handler() {
41
+ // Apply late — after the dev server is up and running — so that it doesn't slow down dev start
42
+ setTimeoutUnref(() => autoAddVikeSkill(config.root), 15 * 1000);
52
43
  },
53
44
  },
54
45
  },
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: '0.4.261';
1
+ export declare const PROJECT_VERSION: '0.4.263';
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.261';
2
+ export const PROJECT_VERSION = '0.4.263';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.261",
3
+ "version": "0.4.263",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
@@ -127,7 +127,7 @@
127
127
  "@brillout/import": "^0.2.6",
128
128
  "@brillout/json-serializer": "^0.5.25",
129
129
  "@brillout/picocolors": "^1.0.31",
130
- "@brillout/vite-plugin-server-entry": "^0.7.20",
130
+ "@brillout/vite-plugin-server-entry": "^0.7.21",
131
131
  "@universal-deploy/store": "^0.2.2",
132
132
  "@universal-deploy/vite": "^0.1.11",
133
133
  "@universal-middleware/core": "^0.4.18",
@@ -137,7 +137,7 @@
137
137
  "es-module-lexer": "^1.0.0",
138
138
  "esbuild": ">=0.19.0",
139
139
  "json5": "^2.0.0",
140
- "magic-string": "^1.2.0",
140
+ "magic-string": "^1.2.2",
141
141
  "picomatch": "^4.0.5",
142
142
  "semver": "^7.8.5",
143
143
  "sirv": "^3.0.2",