vike 0.4.213 → 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.
@@ -9,8 +9,8 @@ const utils_js_1 = require("./utils.js");
9
9
  const commands = [
10
10
  { name: 'dev', desc: 'Start development server' },
11
11
  { name: 'build', desc: 'Build for production' },
12
- { name: 'preview', desc: 'Start preview server using production build' },
13
- { name: 'prerender', desc: 'Pre-render pages' }
12
+ { name: 'preview', desc: 'Start preview server using production build (only works for SSG apps)' },
13
+ { name: 'prerender', desc: 'Pre-render pages (only needed when partial.disableAutoRun is true)' }
14
14
  ];
15
15
  function parseCli() {
16
16
  const command = (() => {
@@ -33,6 +33,7 @@ const fileEnv_js_1 = require("./plugins/fileEnv.js");
33
33
  const getPageAssets_js_1 = require("../runtime/renderPage/getPageAssets.js");
34
34
  const resolveClientEntriesDev_js_1 = require("./resolveClientEntriesDev.js");
35
35
  const workaroundCssModuleHmr_js_1 = require("./plugins/workaroundCssModuleHmr.js");
36
+ const vite6HmrRegressionWorkaround_js_1 = require("./plugins/vite6HmrRegressionWorkaround.js");
36
37
  (0, utils_js_2.assertNodeEnv_onVikePluginLoad)();
37
38
  (0, utils_js_2.markEnvAsVikePluginLoaded)();
38
39
  assertViteVersion();
@@ -58,7 +59,8 @@ function plugin(vikeConfig) {
58
59
  (0, baseUrls_js_1.baseUrls)(vikeConfig),
59
60
  (0, envVars_js_1.envVarsPlugin)(),
60
61
  (0, fileEnv_js_1.fileEnv)(),
61
- (0, workaroundCssModuleHmr_js_1.workaroundCssModuleHmr)()
62
+ (0, workaroundCssModuleHmr_js_1.workaroundCssModuleHmr)(),
63
+ (0, vite6HmrRegressionWorkaround_js_1.vite6HmrRegressionWorkaround)()
62
64
  ];
63
65
  return plugins;
64
66
  }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vite6HmrRegressionWorkaround = vite6HmrRegressionWorkaround;
4
+ // https://vite.dev/guide/migration (will be 404 after vite@7 release) > search for `hmrReload()`
5
+ // https://v6.vite.dev/guide/migration (will exist after vite@7 release) > search for `hmrReload()`
6
+ // Workaround seems to work for docs page /banner (which is HTML-only)
7
+ // 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`)
8
+ function vite6HmrRegressionWorkaround() {
9
+ return {
10
+ name: 'vike:vite6HmrRegressionWorkaround',
11
+ enforce: 'post',
12
+ hotUpdate: {
13
+ order: 'post',
14
+ handler({ modules, server, timestamp }) {
15
+ if (this.environment.name !== 'ssr')
16
+ return;
17
+ let hasSsrOnlyModules = false;
18
+ const invalidatedModules = new Set();
19
+ for (const mod of modules) {
20
+ if (mod.id == null)
21
+ continue;
22
+ const clientModule = server.environments.client.moduleGraph.getModuleById(mod.id);
23
+ if (clientModule != null)
24
+ continue;
25
+ this.environment.moduleGraph.invalidateModule(mod, invalidatedModules, timestamp, true);
26
+ hasSsrOnlyModules = true;
27
+ }
28
+ if (hasSsrOnlyModules) {
29
+ server.ws.send({ type: 'full-reload' });
30
+ return [];
31
+ }
32
+ }
33
+ }
34
+ };
35
+ }
@@ -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.213';
5
+ exports.PROJECT_VERSION = '0.4.214';
@@ -4,8 +4,8 @@ import { projectInfo, includes } from './utils.js';
4
4
  const commands = [
5
5
  { name: 'dev', desc: 'Start development server' },
6
6
  { name: 'build', desc: 'Build for production' },
7
- { name: 'preview', desc: 'Start preview server using production build' },
8
- { name: 'prerender', desc: 'Pre-render pages' }
7
+ { name: 'preview', desc: 'Start preview server using production build (only works for SSG apps)' },
8
+ { name: 'prerender', desc: 'Pre-render pages (only needed when partial.disableAutoRun is true)' }
9
9
  ];
10
10
  function parseCli() {
11
11
  const command = (() => {
@@ -27,6 +27,7 @@ import { fileEnv } from './plugins/fileEnv.js';
27
27
  import { setResolveClientEntriesDev } from '../runtime/renderPage/getPageAssets.js';
28
28
  import { resolveClientEntriesDev } from './resolveClientEntriesDev.js';
29
29
  import { workaroundCssModuleHmr } from './plugins/workaroundCssModuleHmr.js';
30
+ import { vite6HmrRegressionWorkaround } from './plugins/vite6HmrRegressionWorkaround.js';
30
31
  assertNodeEnv_onVikePluginLoad();
31
32
  markEnvAsVikePluginLoaded();
32
33
  assertViteVersion();
@@ -52,7 +53,8 @@ function plugin(vikeConfig) {
52
53
  baseUrls(vikeConfig),
53
54
  envVarsPlugin(),
54
55
  fileEnv(),
55
- workaroundCssModuleHmr()
56
+ workaroundCssModuleHmr(),
57
+ vite6HmrRegressionWorkaround()
56
58
  ];
57
59
  return plugins;
58
60
  }
@@ -0,0 +1,3 @@
1
+ export { vite6HmrRegressionWorkaround };
2
+ import type { Plugin } from 'vite';
3
+ declare function vite6HmrRegressionWorkaround(): Plugin;
@@ -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
+ }
@@ -56,7 +56,7 @@ type ConfigVikeUserProvided = {
56
56
  *
57
57
  * Use this if you want to programmatically initiate the pre-rendering process instead.
58
58
  *
59
- * https://vike.dev/prerender-programmatic
59
+ * https://vike.dev/api#prerender
60
60
  *
61
61
  * @default false
62
62
  */
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.213";
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.213';
2
+ export const PROJECT_VERSION = '0.4.214';
@@ -1,4 +1,4 @@
1
1
  export declare const projectInfo: {
2
2
  projectName: "Vike";
3
- projectVersion: "0.4.213";
3
+ projectVersion: "0.4.214";
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.213",
3
+ "version": "0.4.214",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
@@ -139,7 +139,8 @@
139
139
  "fast-glob": "^3.0.0",
140
140
  "json5": "^2.0.0",
141
141
  "semver": "^7.0.0",
142
- "source-map-support": "^0.5.0"
142
+ "source-map-support": "^0.5.0",
143
+ "vite": ">=5.1.0"
143
144
  },
144
145
  "peerDependencies": {
145
146
  "react-streaming": ">=0.3.42",
@@ -148,20 +149,26 @@
148
149
  "peerDependenciesMeta": {
149
150
  "react-streaming": {
150
151
  "optional": true
152
+ },
153
+ "vite": {
154
+ "optional": true
151
155
  }
152
156
  },
153
157
  "engines": {
154
158
  "node": ">=18.0.0"
155
159
  },
156
160
  "license": "MIT",
157
- "description": "Flexible, lean, community-driven, dependable, fast Vite-based frontend framework.",
161
+ "description": "The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.",
158
162
  "keywords": [
163
+ "vite-plugin",
164
+ "ssr",
165
+ "vite",
159
166
  "react",
160
167
  "vue",
161
168
  "solid",
162
- "vite",
163
- "vite-plugin",
164
- "ssr"
169
+ "next",
170
+ "remix",
171
+ "vike"
165
172
  ],
166
173
  "typesVersions": {
167
174
  "*": {