Skip to content

Commit 66b9069

Browse files
authored
refactor: Switch to vite-prerender-plugin (#153)
* refactor: Switch to `vite-prerender-plugin` * revert: Support `previewMiddlewareEnabled` yet * revert: Test script alterations for Node 22+ * chore: Bump vite-prerender-plugin
1 parent 8f99887 commit 66b9069

File tree

5 files changed

+50
-611
lines changed

5 files changed

+50
-611
lines changed

package-lock.json

+36-19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"dev:build": "vite build demo",
1818
"dev:preview": "vite preview demo",
1919
"build": "rimraf dist && tsc && tsc -p tsconfig.cjs.json && node tools/postbuild.mjs",
20-
"test": "node --test test",
20+
"test": "rimraf demo/node_modules && node --test test",
2121
"prepublishOnly": "npm run build"
2222
},
2323
"keywords": [
@@ -36,18 +36,14 @@
3636
"dist/"
3737
],
3838
"dependencies": {
39-
"@babel/code-frame": "^7.22.13",
4039
"@babel/plugin-transform-react-jsx": "^7.22.15",
4140
"@babel/plugin-transform-react-jsx-development": "^7.22.5",
4241
"@prefresh/vite": "^2.4.1",
4342
"@rollup/pluginutils": "^4.1.1",
4443
"babel-plugin-transform-hook-names": "^1.0.2",
4544
"debug": "^4.3.4",
4645
"kolorist": "^1.8.0",
47-
"magic-string": "0.30.5",
48-
"node-html-parser": "^6.1.10",
49-
"source-map": "^0.7.4",
50-
"stack-trace": "^1.0.0-pre2"
46+
"vite-prerender-plugin": "^0.5.3"
5147
},
5248
"peerDependencies": {
5349
"@babel/core": "7.x",

src/index.ts

+12-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { TransformOptions } from "@babel/core";
66
import prefresh from "@prefresh/vite";
77
import { preactDevtoolsPlugin } from "./devtools.js";
88
import { createFilter, parseId } from "./utils.js";
9-
import { PrerenderPlugin, HTMLRoutingMiddlewarePlugin } from "./prerender.js";
9+
import { vitePrerenderPlugin } from "vite-prerender-plugin";
1010
import { transformAsync } from "@babel/core";
1111

1212
export type BabelOptions = Omit<
@@ -145,6 +145,16 @@ function preactPlugin({
145145
reactAliasesEnabled = reactAliasesEnabled ?? true;
146146
prerender = prerender ?? { enabled: false };
147147

148+
const prerenderPlugin = vitePrerenderPlugin(prerender);
149+
if (!prerender.previewMiddlewareEnabled) {
150+
const idx = prerenderPlugin.findIndex(
151+
p => p.name == "serve-prerendered-html",
152+
);
153+
if (idx > -1) {
154+
prerenderPlugin.splice(idx, 1);
155+
}
156+
}
157+
148158
const jsxPlugin: Plugin = {
149159
name: "vite:preact-jsx",
150160
enforce: "pre",
@@ -275,14 +285,7 @@ function preactPlugin({
275285
...(prefreshEnabled
276286
? [prefresh({ include, exclude, parserPlugins: baseParserOptions })]
277287
: []),
278-
...(prerender.enabled ? [PrerenderPlugin(prerender)] : []),
279-
...(prerender.previewMiddlewareEnabled
280-
? [
281-
HTMLRoutingMiddlewarePlugin({
282-
fallback: prerender.previewMiddlewareFallback,
283-
}),
284-
]
285-
: []),
288+
...(prerender.enabled ? prerenderPlugin : []),
286289
];
287290
}
288291

0 commit comments

Comments
 (0)