create-vite-extra 2.4.0 → 3.0.0
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/README.md +1 -1
- package/index.js +1 -2
- package/package.json +4 -3
- package/template-deno-lit/deno.json +1 -1
- package/template-deno-lit-ts/deno.json +1 -1
- package/template-deno-preact/deno.json +2 -2
- package/template-deno-preact-ts/deno.json +2 -2
- package/template-deno-react/deno.json +3 -3
- package/template-deno-react-ts/deno.json +3 -3
- package/template-deno-solid/deno.json +3 -3
- package/template-deno-solid-ts/deno.json +3 -3
- package/template-deno-svelte/deno.json +3 -3
- package/template-deno-svelte-ts/deno.json +3 -3
- package/template-deno-vanilla/deno.json +1 -1
- package/template-deno-vanilla/index.html +1 -1
- package/template-deno-vanilla-ts/deno.json +1 -1
- package/template-deno-vue/deno.json +3 -3
- package/template-deno-vue-ts/deno.json +3 -3
- package/template-library/package.json +1 -1
- package/template-library-ts/package.json +2 -2
- package/template-library-ts/tsconfig.json +1 -1
- package/template-ssr-preact/package.json +4 -4
- package/template-ssr-preact/server.js +4 -4
- package/template-ssr-preact/src/entry-server.jsx +4 -1
- package/template-ssr-preact-ts/package.json +6 -6
- package/template-ssr-preact-ts/server.js +4 -4
- package/template-ssr-preact-ts/src/entry-server.tsx +1 -1
- package/template-ssr-preact-ts/tsconfig.json +1 -1
- package/template-ssr-preact-ts/tsconfig.node.json +1 -1
- package/template-ssr-react/package.json +5 -5
- package/template-ssr-react/server.js +4 -4
- package/template-ssr-react/src/entry-server.jsx +4 -1
- package/template-ssr-react-streaming/package.json +4 -4
- package/template-ssr-react-streaming/server.js +4 -4
- package/template-ssr-react-streaming/src/entry-server.jsx +2 -3
- package/template-ssr-react-streaming-ts/package.json +7 -7
- package/template-ssr-react-streaming-ts/server.js +4 -4
- package/template-ssr-react-streaming-ts/src/entry-server.tsx +1 -5
- package/template-ssr-react-streaming-ts/tsconfig.json +1 -1
- package/template-ssr-react-streaming-ts/tsconfig.node.json +1 -1
- package/template-ssr-react-ts/package.json +7 -7
- package/template-ssr-react-ts/server.js +4 -4
- package/template-ssr-react-ts/src/entry-server.tsx +1 -1
- package/template-ssr-react-ts/tsconfig.json +1 -1
- package/template-ssr-react-ts/tsconfig.node.json +1 -1
- package/template-ssr-solid/package.json +5 -5
- package/template-ssr-solid/server.js +4 -4
- package/template-ssr-solid/src/entry-server.jsx +4 -1
- package/template-ssr-solid-ts/package.json +6 -6
- package/template-ssr-solid-ts/server.js +4 -4
- package/template-ssr-solid-ts/src/entry-server.tsx +1 -1
- package/template-ssr-solid-ts/tsconfig.json +1 -1
- package/template-ssr-solid-ts/tsconfig.node.json +1 -1
- package/template-ssr-svelte/jsconfig.json +1 -1
- package/template-ssr-svelte/package.json +5 -5
- package/template-ssr-svelte/server.js +4 -4
- package/template-ssr-svelte/src/entry-server.js +4 -1
- package/template-ssr-svelte-ts/package.json +9 -9
- package/template-ssr-svelte-ts/server.js +4 -4
- package/template-ssr-svelte-ts/src/entry-server.ts +1 -1
- package/template-ssr-svelte-ts/tsconfig.node.json +1 -1
- package/template-ssr-transform/package.json +1 -1
- package/template-ssr-vanilla/package.json +3 -3
- package/template-ssr-vanilla/server.js +4 -4
- package/template-ssr-vanilla/src/entry-server.js +4 -1
- package/template-ssr-vanilla-ts/package.json +5 -5
- package/template-ssr-vanilla-ts/server.js +4 -4
- package/template-ssr-vanilla-ts/src/entry-server.ts +1 -1
- package/template-ssr-vanilla-ts/tsconfig.json +1 -1
- package/template-ssr-vue/package.json +5 -5
- package/template-ssr-vue/server.js +4 -4
- package/template-ssr-vue/src/entry-server.js +4 -1
- package/template-ssr-vue-streaming/package.json +5 -5
- package/template-ssr-vue-streaming/server.js +4 -4
- package/template-ssr-vue-streaming/src/entry-server.js +4 -1
- package/template-ssr-vue-streaming-ts/package.json +8 -8
- package/template-ssr-vue-streaming-ts/server.js +4 -4
- package/template-ssr-vue-streaming-ts/src/entry-server.ts +1 -1
- package/template-ssr-vue-streaming-ts/tsconfig.node.json +1 -1
- package/template-ssr-vue-ts/package.json +8 -8
- package/template-ssr-vue-ts/server.js +4 -4
- package/template-ssr-vue-ts/src/entry-server.ts +1 -1
- package/template-ssr-vue-ts/tsconfig.node.json +1 -1
- package/template-deno-svelte/jsconfig.json +0 -34
- package/template-ssr-preact-ts/package-lock.json +0 -2923
- package/template-ssr-react/package-lock.json +0 -2629
- package/template-ssr-react-streaming/package-lock.json +0 -2596
- package/template-ssr-svelte/package-lock.json +0 -2125
- package/template-ssr-svelte-ts/package-lock.json +0 -2345
- package/template-ssr-vue-streaming-ts/package-lock.json +0 -2346
- package/template-ssr-vue-ts/package-lock.json +0 -2346
- /package/template-deno-vanilla/{counter.js → src/counter.js} +0 -0
- /package/template-deno-vanilla/{javascript.svg → src/javascript.svg} +0 -0
- /package/template-deno-vanilla/{main.js → src/main.js} +0 -0
- /package/template-deno-vanilla/{style.css → src/style.css} +0 -0
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Scaffolding Your First Vite Project
|
|
4
4
|
|
|
5
5
|
> **Compatibility Note:**
|
|
6
|
-
> Vite requires [Node.js](https://nodejs.org/en/) version
|
|
6
|
+
> Vite requires [Node.js](https://nodejs.org/en/) version 18+, 20+, 22+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it.
|
|
7
7
|
|
|
8
8
|
With NPM:
|
|
9
9
|
|
package/index.js
CHANGED
|
@@ -350,8 +350,7 @@ async function init() {
|
|
|
350
350
|
const argTemplate = argv.template || argv.t
|
|
351
351
|
|
|
352
352
|
const defaultTargetDir = 'vite-project'
|
|
353
|
-
const getProjectName = () =>
|
|
354
|
-
targetDir === '.' ? path.basename(path.resolve()) : targetDir
|
|
353
|
+
const getProjectName = () => path.basename(path.resolve(targetDir))
|
|
355
354
|
|
|
356
355
|
let result = {}
|
|
357
356
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vite-extra",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bjorn Lu",
|
|
@@ -12,12 +12,13 @@
|
|
|
12
12
|
"template-*",
|
|
13
13
|
"!template-*/dist",
|
|
14
14
|
"!template-*/node_modules",
|
|
15
|
+
"!template-*/package-lock.json",
|
|
15
16
|
"!template-*/pnpm-lock.yaml",
|
|
16
17
|
"!template-*/deno.lock"
|
|
17
18
|
],
|
|
18
19
|
"main": "index.js",
|
|
19
20
|
"engines": {
|
|
20
|
-
"node": "^18.0.0 ||
|
|
21
|
+
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
|
|
21
22
|
},
|
|
22
23
|
"repository": {
|
|
23
24
|
"type": "git",
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
"prompts": "^2.4.2"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
|
-
"prettier": "^3.
|
|
37
|
+
"prettier": "^3.4.1"
|
|
37
38
|
},
|
|
38
39
|
"scripts": {
|
|
39
40
|
"format": "prettier --write .",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"imports": {
|
|
14
14
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
15
15
|
"@preact/preset-vite": "npm:@preact/preset-vite@^2.9.1",
|
|
16
|
-
"preact": "npm:preact@^10.
|
|
17
|
-
"vite": "npm:vite@^
|
|
16
|
+
"preact": "npm:preact@^10.25.0",
|
|
17
|
+
"vite": "npm:vite@^6.0.1"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"imports": {
|
|
14
14
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
15
15
|
"@preact/preset-vite": "npm:@preact/preset-vite@^2.9.1",
|
|
16
|
-
"preact": "npm:preact@^10.
|
|
17
|
-
"vite": "npm:vite@^
|
|
16
|
+
"preact": "npm:preact@^10.25.0",
|
|
17
|
+
"vite": "npm:vite@^6.0.1"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
},
|
|
14
14
|
"imports": {
|
|
15
15
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
16
|
-
"@types/react": "npm:@types/react@^18.3.
|
|
16
|
+
"@types/react": "npm:@types/react@^18.3.12",
|
|
17
17
|
"@types/react-dom": "npm:@types/react-dom@^18.3.1",
|
|
18
|
-
"@vitejs/plugin-react": "npm:@vitejs/plugin-react@^4.3.
|
|
18
|
+
"@vitejs/plugin-react": "npm:@vitejs/plugin-react@^4.3.4",
|
|
19
19
|
"react": "npm:react@^18.3.1",
|
|
20
20
|
"react-dom": "npm:react-dom@^18.3.1",
|
|
21
|
-
"vite": "npm:vite@^
|
|
21
|
+
"vite": "npm:vite@^6.0.1"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
},
|
|
14
14
|
"imports": {
|
|
15
15
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
16
|
-
"@types/react": "npm:@types/react@^18.3.
|
|
16
|
+
"@types/react": "npm:@types/react@^18.3.12",
|
|
17
17
|
"@types/react-dom": "npm:@types/react-dom@^18.3.1",
|
|
18
|
-
"@vitejs/plugin-react": "npm:@vitejs/plugin-react@^4.3.
|
|
18
|
+
"@vitejs/plugin-react": "npm:@vitejs/plugin-react@^4.3.4",
|
|
19
19
|
"react": "npm:react@^18.3.1",
|
|
20
20
|
"react-dom": "npm:react-dom@^18.3.1",
|
|
21
|
-
"vite": "npm:vite@^
|
|
21
|
+
"vite": "npm:vite@^6.0.1"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
},
|
|
13
13
|
"imports": {
|
|
14
14
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
15
|
-
"solid-js": "npm:solid-js@^1.9.
|
|
16
|
-
"vite": "npm:vite@^
|
|
17
|
-
"vite-plugin-solid": "npm:vite-plugin-solid@^2.
|
|
15
|
+
"solid-js": "npm:solid-js@^1.9.3",
|
|
16
|
+
"vite": "npm:vite@^6.0.1",
|
|
17
|
+
"vite-plugin-solid": "npm:vite-plugin-solid@^2.11.0"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
},
|
|
13
13
|
"imports": {
|
|
14
14
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
15
|
-
"solid-js": "npm:solid-js@^1.9.
|
|
16
|
-
"vite": "npm:vite@^
|
|
17
|
-
"vite-plugin-solid": "npm:vite-plugin-solid@^2.
|
|
15
|
+
"solid-js": "npm:solid-js@^1.9.3",
|
|
16
|
+
"vite": "npm:vite@^6.0.1",
|
|
17
|
+
"vite-plugin-solid": "npm:vite-plugin-solid@^2.11.0"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"imports": {
|
|
12
12
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
13
|
-
"@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@^
|
|
14
|
-
"svelte": "npm:svelte@^5.
|
|
15
|
-
"vite": "npm:vite@^
|
|
13
|
+
"@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@^5.0.1",
|
|
14
|
+
"svelte": "npm:svelte@^5.2.9",
|
|
15
|
+
"vite": "npm:vite@^6.0.1"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"imports": {
|
|
12
12
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
13
|
-
"@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@^
|
|
14
|
-
"svelte": "npm:svelte@^5.
|
|
15
|
-
"vite": "npm:vite@^
|
|
13
|
+
"@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@^5.0.1",
|
|
14
|
+
"svelte": "npm:svelte@^5.2.9",
|
|
15
|
+
"vite": "npm:vite@^6.0.1"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"imports": {
|
|
12
12
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
13
|
-
"@vitejs/plugin-vue": "npm:@vitejs/plugin-vue@^5.1
|
|
14
|
-
"vite": "npm:vite@^
|
|
15
|
-
"vue": "npm:vue@^3.5.
|
|
13
|
+
"@vitejs/plugin-vue": "npm:@vitejs/plugin-vue@^5.2.1",
|
|
14
|
+
"vite": "npm:vite@^6.0.1",
|
|
15
|
+
"vue": "npm:vue@^3.5.13"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"imports": {
|
|
12
12
|
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
|
|
13
|
-
"@vitejs/plugin-vue": "npm:@vitejs/plugin-vue@^5.1
|
|
14
|
-
"vite": "npm:vite@^
|
|
15
|
-
"vue": "npm:vue@^3.5.
|
|
13
|
+
"@vitejs/plugin-vue": "npm:@vitejs/plugin-vue@^5.2.1",
|
|
14
|
+
"vite": "npm:vite@^6.0.1",
|
|
15
|
+
"vue": "npm:vue@^3.5.13"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -6,20 +6,20 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "node server",
|
|
8
8
|
"build": "npm run build:client && npm run build:server",
|
|
9
|
-
"build:client": "vite build --
|
|
9
|
+
"build:client": "vite build --outDir dist/client",
|
|
10
10
|
"build:server": "vite build --ssr src/entry-server.jsx --outDir dist/server",
|
|
11
11
|
"preview": "cross-env NODE_ENV=production node server"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"compression": "^1.7.
|
|
14
|
+
"compression": "^1.7.5",
|
|
15
15
|
"express": "^5.0.1",
|
|
16
|
-
"preact": "^10.
|
|
16
|
+
"preact": "^10.25.0",
|
|
17
17
|
"preact-render-to-string": "^6.5.11",
|
|
18
18
|
"sirv": "^3.0.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@preact/preset-vite": "^2.9.1",
|
|
22
22
|
"cross-env": "^7.0.3",
|
|
23
|
-
"vite": "^
|
|
23
|
+
"vite": "^6.0.1"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -10,14 +10,12 @@ const base = process.env.BASE || '/'
|
|
|
10
10
|
const templateHtml = isProduction
|
|
11
11
|
? await fs.readFile('./dist/client/index.html', 'utf-8')
|
|
12
12
|
: ''
|
|
13
|
-
const ssrManifest = isProduction
|
|
14
|
-
? await fs.readFile('./dist/client/.vite/ssr-manifest.json', 'utf-8')
|
|
15
|
-
: undefined
|
|
16
13
|
|
|
17
14
|
// Create http server
|
|
18
15
|
const app = express()
|
|
19
16
|
|
|
20
17
|
// Add Vite or respective production middlewares
|
|
18
|
+
/** @type {import('vite').ViteDevServer | undefined} */
|
|
21
19
|
let vite
|
|
22
20
|
if (!isProduction) {
|
|
23
21
|
const { createServer } = await import('vite')
|
|
@@ -39,7 +37,9 @@ app.use('*all', async (req, res) => {
|
|
|
39
37
|
try {
|
|
40
38
|
const url = req.originalUrl.replace(base, '')
|
|
41
39
|
|
|
40
|
+
/** @type {string} */
|
|
42
41
|
let template
|
|
42
|
+
/** @type {import('./src/entry-server.js').render} */
|
|
43
43
|
let render
|
|
44
44
|
if (!isProduction) {
|
|
45
45
|
// Always read fresh template in development
|
|
@@ -51,7 +51,7 @@ app.use('*all', async (req, res) => {
|
|
|
51
51
|
render = (await import('./dist/server/entry-server.js')).render
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
const rendered = await render(url
|
|
54
|
+
const rendered = await render(url)
|
|
55
55
|
|
|
56
56
|
const html = template
|
|
57
57
|
.replace(`<!--app-head-->`, rendered.head ?? '')
|
|
@@ -6,23 +6,23 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "node server",
|
|
8
8
|
"build": "npm run build:client && npm run build:server",
|
|
9
|
-
"build:client": "vite build --
|
|
9
|
+
"build:client": "vite build --outDir dist/client",
|
|
10
10
|
"build:server": "vite build --ssr src/entry-server.tsx --outDir dist/server",
|
|
11
11
|
"preview": "cross-env NODE_ENV=production node server"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"compression": "^1.7.
|
|
14
|
+
"compression": "^1.7.5",
|
|
15
15
|
"express": "^5.0.1",
|
|
16
|
-
"preact": "^10.
|
|
16
|
+
"preact": "^10.25.0",
|
|
17
17
|
"preact-render-to-string": "^6.5.11",
|
|
18
18
|
"sirv": "^3.0.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@preact/preset-vite": "^2.9.1",
|
|
22
22
|
"@types/express": "^5.0.0",
|
|
23
|
-
"@types/node": "^22.
|
|
23
|
+
"@types/node": "^22.10.0",
|
|
24
24
|
"cross-env": "^7.0.3",
|
|
25
|
-
"typescript": "~5.
|
|
26
|
-
"vite": "^
|
|
25
|
+
"typescript": "~5.7.2",
|
|
26
|
+
"vite": "^6.0.1"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -10,14 +10,12 @@ const base = process.env.BASE || '/'
|
|
|
10
10
|
const templateHtml = isProduction
|
|
11
11
|
? await fs.readFile('./dist/client/index.html', 'utf-8')
|
|
12
12
|
: ''
|
|
13
|
-
const ssrManifest = isProduction
|
|
14
|
-
? await fs.readFile('./dist/client/.vite/ssr-manifest.json', 'utf-8')
|
|
15
|
-
: undefined
|
|
16
13
|
|
|
17
14
|
// Create http server
|
|
18
15
|
const app = express()
|
|
19
16
|
|
|
20
17
|
// Add Vite or respective production middlewares
|
|
18
|
+
/** @type {import('vite').ViteDevServer | undefined} */
|
|
21
19
|
let vite
|
|
22
20
|
if (!isProduction) {
|
|
23
21
|
const { createServer } = await import('vite')
|
|
@@ -39,7 +37,9 @@ app.use('*all', async (req, res) => {
|
|
|
39
37
|
try {
|
|
40
38
|
const url = req.originalUrl.replace(base, '')
|
|
41
39
|
|
|
40
|
+
/** @type {string} */
|
|
42
41
|
let template
|
|
42
|
+
/** @type {import('./src/entry-server.ts').render} */
|
|
43
43
|
let render
|
|
44
44
|
if (!isProduction) {
|
|
45
45
|
// Always read fresh template in development
|
|
@@ -51,7 +51,7 @@ app.use('*all', async (req, res) => {
|
|
|
51
51
|
render = (await import('./dist/server/entry-server.js')).render
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
const rendered = await render(url
|
|
54
|
+
const rendered = await render(url)
|
|
55
55
|
|
|
56
56
|
const html = template
|
|
57
57
|
.replace(`<!--app-head-->`, rendered.head ?? '')
|
|
@@ -6,22 +6,22 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "node server",
|
|
8
8
|
"build": "npm run build:client && npm run build:server",
|
|
9
|
-
"build:client": "vite build --
|
|
9
|
+
"build:client": "vite build --outDir dist/client",
|
|
10
10
|
"build:server": "vite build --ssr src/entry-server.jsx --outDir dist/server",
|
|
11
11
|
"preview": "cross-env NODE_ENV=production node server"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"compression": "^1.7.
|
|
14
|
+
"compression": "^1.7.5",
|
|
15
15
|
"express": "^5.0.1",
|
|
16
16
|
"react": "^18.3.1",
|
|
17
17
|
"react-dom": "^18.3.1",
|
|
18
18
|
"sirv": "^3.0.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@types/react": "^18.3.
|
|
21
|
+
"@types/react": "^18.3.12",
|
|
22
22
|
"@types/react-dom": "^18.3.1",
|
|
23
|
-
"@vitejs/plugin-react": "^4.3.
|
|
23
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
24
24
|
"cross-env": "^7.0.3",
|
|
25
|
-
"vite": "^
|
|
25
|
+
"vite": "^6.0.1"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -10,14 +10,12 @@ const base = process.env.BASE || '/'
|
|
|
10
10
|
const templateHtml = isProduction
|
|
11
11
|
? await fs.readFile('./dist/client/index.html', 'utf-8')
|
|
12
12
|
: ''
|
|
13
|
-
const ssrManifest = isProduction
|
|
14
|
-
? await fs.readFile('./dist/client/.vite/ssr-manifest.json', 'utf-8')
|
|
15
|
-
: undefined
|
|
16
13
|
|
|
17
14
|
// Create http server
|
|
18
15
|
const app = express()
|
|
19
16
|
|
|
20
17
|
// Add Vite or respective production middlewares
|
|
18
|
+
/** @type {import('vite').ViteDevServer | undefined} */
|
|
21
19
|
let vite
|
|
22
20
|
if (!isProduction) {
|
|
23
21
|
const { createServer } = await import('vite')
|
|
@@ -39,7 +37,9 @@ app.use('*all', async (req, res) => {
|
|
|
39
37
|
try {
|
|
40
38
|
const url = req.originalUrl.replace(base, '')
|
|
41
39
|
|
|
40
|
+
/** @type {string} */
|
|
42
41
|
let template
|
|
42
|
+
/** @type {import('./src/entry-server.js').render} */
|
|
43
43
|
let render
|
|
44
44
|
if (!isProduction) {
|
|
45
45
|
// Always read fresh template in development
|
|
@@ -51,7 +51,7 @@ app.use('*all', async (req, res) => {
|
|
|
51
51
|
render = (await import('./dist/server/entry-server.js')).render
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
const rendered = await render(url
|
|
54
|
+
const rendered = await render(url)
|
|
55
55
|
|
|
56
56
|
const html = template
|
|
57
57
|
.replace(`<!--app-head-->`, rendered.head ?? '')
|
|
@@ -2,7 +2,10 @@ import { StrictMode } from 'react'
|
|
|
2
2
|
import { renderToString } from 'react-dom/server'
|
|
3
3
|
import App from './App'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* @param {string} _url
|
|
7
|
+
*/
|
|
8
|
+
export function render(_url) {
|
|
6
9
|
const html = renderToString(
|
|
7
10
|
<StrictMode>
|
|
8
11
|
<App />
|
|
@@ -6,20 +6,20 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "node server",
|
|
8
8
|
"build": "npm run build:client && npm run build:server",
|
|
9
|
-
"build:client": "vite build --
|
|
9
|
+
"build:client": "vite build --outDir dist/client",
|
|
10
10
|
"build:server": "vite build --ssr src/entry-server.jsx --outDir dist/server",
|
|
11
11
|
"preview": "cross-env NODE_ENV=production node server"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"compression": "^1.7.
|
|
14
|
+
"compression": "^1.7.5",
|
|
15
15
|
"express": "^5.0.1",
|
|
16
16
|
"react": "^18.3.1",
|
|
17
17
|
"react-dom": "^18.3.1",
|
|
18
18
|
"sirv": "^3.0.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@vitejs/plugin-react": "^4.3.
|
|
21
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
22
22
|
"cross-env": "^7.0.3",
|
|
23
|
-
"vite": "^
|
|
23
|
+
"vite": "^6.0.1"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -12,14 +12,12 @@ const ABORT_DELAY = 10000
|
|
|
12
12
|
const templateHtml = isProduction
|
|
13
13
|
? await fs.readFile('./dist/client/index.html', 'utf-8')
|
|
14
14
|
: ''
|
|
15
|
-
const ssrManifest = isProduction
|
|
16
|
-
? await fs.readFile('./dist/client/.vite/ssr-manifest.json', 'utf-8')
|
|
17
|
-
: undefined
|
|
18
15
|
|
|
19
16
|
// Create http server
|
|
20
17
|
const app = express()
|
|
21
18
|
|
|
22
19
|
// Add Vite or respective production middlewares
|
|
20
|
+
/** @type {import('vite').ViteDevServer | undefined} */
|
|
23
21
|
let vite
|
|
24
22
|
if (!isProduction) {
|
|
25
23
|
const { createServer } = await import('vite')
|
|
@@ -41,7 +39,9 @@ app.use('*all', async (req, res) => {
|
|
|
41
39
|
try {
|
|
42
40
|
const url = req.originalUrl.replace(base, '')
|
|
43
41
|
|
|
42
|
+
/** @type {string} */
|
|
44
43
|
let template
|
|
44
|
+
/** @type {import('./src/entry-server.js').render} */
|
|
45
45
|
let render
|
|
46
46
|
if (!isProduction) {
|
|
47
47
|
// Always read fresh template in development
|
|
@@ -55,7 +55,7 @@ app.use('*all', async (req, res) => {
|
|
|
55
55
|
|
|
56
56
|
let didError = false
|
|
57
57
|
|
|
58
|
-
const { pipe, abort } = render(url,
|
|
58
|
+
const { pipe, abort } = render(url, {
|
|
59
59
|
onShellError() {
|
|
60
60
|
res.status(500)
|
|
61
61
|
res.set({ 'Content-Type': 'text/html' })
|
|
@@ -3,11 +3,10 @@ import { renderToPipeableStream } from 'react-dom/server'
|
|
|
3
3
|
import App from './App'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* @param {string}
|
|
7
|
-
* @param {string} [ssrManifest]
|
|
6
|
+
* @param {string} _url
|
|
8
7
|
* @param {import('react-dom/server').RenderToPipeableStreamOptions} [options]
|
|
9
8
|
*/
|
|
10
|
-
export function render(
|
|
9
|
+
export function render(_url, options) {
|
|
11
10
|
return renderToPipeableStream(
|
|
12
11
|
<StrictMode>
|
|
13
12
|
<App />
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "node server",
|
|
8
8
|
"build": "npm run build:client && npm run build:server",
|
|
9
|
-
"build:client": "vite build --
|
|
9
|
+
"build:client": "vite build --outDir dist/client",
|
|
10
10
|
"build:server": "vite build --ssr src/entry-server.tsx --outDir dist/server",
|
|
11
11
|
"preview": "cross-env NODE_ENV=production node server"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"compression": "^1.7.
|
|
14
|
+
"compression": "^1.7.5",
|
|
15
15
|
"express": "^5.0.1",
|
|
16
16
|
"react": "^18.3.1",
|
|
17
17
|
"react-dom": "^18.3.1",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/express": "^5.0.0",
|
|
22
|
-
"@types/node": "^22.
|
|
23
|
-
"@types/react": "^18.3.
|
|
22
|
+
"@types/node": "^22.10.0",
|
|
23
|
+
"@types/react": "^18.3.12",
|
|
24
24
|
"@types/react-dom": "^18.3.1",
|
|
25
|
-
"@vitejs/plugin-react": "^4.3.
|
|
25
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
26
26
|
"cross-env": "^7.0.3",
|
|
27
|
-
"typescript": "~5.
|
|
28
|
-
"vite": "^
|
|
27
|
+
"typescript": "~5.7.2",
|
|
28
|
+
"vite": "^6.0.1"
|
|
29
29
|
}
|
|
30
30
|
}
|