Skip to content

Commit a2e86e5

Browse files
committed
fix: vite dev
1 parent a8665c4 commit a2e86e5

4 files changed

Lines changed: 31 additions & 17 deletions

File tree

ui/.env

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ ESBUILD=false
1616
# feature
1717
SSR=true
1818
CSR=false
19-
MIDDLEWARE=false
20-
MIDDELWARE_VITE = false
19+
MIDDLEWARE=true
2120
ANIMATE_ROUTER=false
2221
# entry
2322
SERVER_ENTRY=./src/server/entry.ts

ui/src/server/middleware/render.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { webpackRenderCSR, webpackRenderP_CSR, webpackRenderSSR, viteRenderCSR,
44

55
import type { RenderType } from "@server/type";
66

7-
const useVITE = false;
7+
const useVITE = true;
88

99
// 渲染函数
1010
const render: RenderType = async ({ req, res }) => {

ui/src/shared/template/Body.tsx

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
1+
import { ViteInject } from "./ViteInject";
2+
13
import type { HTMLProps } from ".";
24

35
export const Body = ({ children, script = [] }: HTMLProps) => (
46
<body>
57
<div id="__content__">{children}</div>
68
{script.filter(Boolean).map((ele) => ele)}
7-
<script type="module" src="/@vite/client"></script>
8-
<script
9-
type="module"
10-
dangerouslySetInnerHTML={{
11-
__html: `
12-
import RefreshRuntime from "/@react-refresh"
13-
RefreshRuntime.injectIntoGlobalHook(window)
14-
window.$RefreshReg$ = () => {}
15-
window.$RefreshSig$ = () => (type) => type
16-
window.__vite_plugin_react_preamble_installed__ = true
17-
`,
18-
}}
19-
></script>
20-
<script type="module" src="/src/client/entry.tsx"></script>
9+
<ViteInject />
2110
</body>
2211
);
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { Children, cloneElement } from "react";
2+
3+
export const ViteInject = () => {
4+
const elements = [];
5+
if (__DEVELOPMENT__) {
6+
elements.push(
7+
<script type="module" src="/@vite/client" />,
8+
<script
9+
type="module"
10+
dangerouslySetInnerHTML={{
11+
__html: `
12+
import RefreshRuntime from "/@react-refresh"
13+
RefreshRuntime.injectIntoGlobalHook(window)
14+
window.$RefreshReg$ = () => {}
15+
window.$RefreshSig$ = () => (type) => type
16+
window.__vite_plugin_react_preamble_installed__ = true
17+
`,
18+
}}
19+
/>
20+
);
21+
}
22+
23+
elements.push(<script type="module" src="/src/client/entry.tsx" />);
24+
25+
return Children.map(elements, (child, index) => cloneElement(child, { key: index }));
26+
};

0 commit comments

Comments
 (0)