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.
- package/dist/node/prerender/resolvePrerenderConfig.d.ts +6 -1
- package/dist/node/prerender/resolvePrerenderConfig.js +9 -3
- package/dist/node/prerender/runPrerender.js +2 -2
- package/dist/node/vite/plugins/pluginCommon.js +14 -0
- package/dist/node/vite/plugins/pluginDev/autoAddVikeSkill.js +8 -4
- package/dist/node/vite/plugins/pluginDev.js +3 -12
- package/dist/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/utils/PROJECT_VERSION.js +1 -1
- package/package.json +3 -3
|
@@ -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 (
|
|
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 —
|
|
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(', ')} —
|
|
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', '
|
|
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
|
-
'
|
|
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(
|
|
41
|
-
// Apply late — after the dev server is up and running
|
|
42
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
140
|
+
"magic-string": "^1.2.2",
|
|
141
141
|
"picomatch": "^4.0.5",
|
|
142
142
|
"semver": "^7.8.5",
|
|
143
143
|
"sirv": "^3.0.2",
|