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.
Files changed (95) hide show
  1. package/README.md +1 -1
  2. package/index.js +1 -2
  3. package/package.json +4 -3
  4. package/template-deno-lit/deno.json +1 -1
  5. package/template-deno-lit-ts/deno.json +1 -1
  6. package/template-deno-preact/deno.json +2 -2
  7. package/template-deno-preact-ts/deno.json +2 -2
  8. package/template-deno-react/deno.json +3 -3
  9. package/template-deno-react-ts/deno.json +3 -3
  10. package/template-deno-solid/deno.json +3 -3
  11. package/template-deno-solid-ts/deno.json +3 -3
  12. package/template-deno-svelte/deno.json +3 -3
  13. package/template-deno-svelte-ts/deno.json +3 -3
  14. package/template-deno-vanilla/deno.json +1 -1
  15. package/template-deno-vanilla/index.html +1 -1
  16. package/template-deno-vanilla-ts/deno.json +1 -1
  17. package/template-deno-vue/deno.json +3 -3
  18. package/template-deno-vue-ts/deno.json +3 -3
  19. package/template-library/package.json +1 -1
  20. package/template-library-ts/package.json +2 -2
  21. package/template-library-ts/tsconfig.json +1 -1
  22. package/template-ssr-preact/package.json +4 -4
  23. package/template-ssr-preact/server.js +4 -4
  24. package/template-ssr-preact/src/entry-server.jsx +4 -1
  25. package/template-ssr-preact-ts/package.json +6 -6
  26. package/template-ssr-preact-ts/server.js +4 -4
  27. package/template-ssr-preact-ts/src/entry-server.tsx +1 -1
  28. package/template-ssr-preact-ts/tsconfig.json +1 -1
  29. package/template-ssr-preact-ts/tsconfig.node.json +1 -1
  30. package/template-ssr-react/package.json +5 -5
  31. package/template-ssr-react/server.js +4 -4
  32. package/template-ssr-react/src/entry-server.jsx +4 -1
  33. package/template-ssr-react-streaming/package.json +4 -4
  34. package/template-ssr-react-streaming/server.js +4 -4
  35. package/template-ssr-react-streaming/src/entry-server.jsx +2 -3
  36. package/template-ssr-react-streaming-ts/package.json +7 -7
  37. package/template-ssr-react-streaming-ts/server.js +4 -4
  38. package/template-ssr-react-streaming-ts/src/entry-server.tsx +1 -5
  39. package/template-ssr-react-streaming-ts/tsconfig.json +1 -1
  40. package/template-ssr-react-streaming-ts/tsconfig.node.json +1 -1
  41. package/template-ssr-react-ts/package.json +7 -7
  42. package/template-ssr-react-ts/server.js +4 -4
  43. package/template-ssr-react-ts/src/entry-server.tsx +1 -1
  44. package/template-ssr-react-ts/tsconfig.json +1 -1
  45. package/template-ssr-react-ts/tsconfig.node.json +1 -1
  46. package/template-ssr-solid/package.json +5 -5
  47. package/template-ssr-solid/server.js +4 -4
  48. package/template-ssr-solid/src/entry-server.jsx +4 -1
  49. package/template-ssr-solid-ts/package.json +6 -6
  50. package/template-ssr-solid-ts/server.js +4 -4
  51. package/template-ssr-solid-ts/src/entry-server.tsx +1 -1
  52. package/template-ssr-solid-ts/tsconfig.json +1 -1
  53. package/template-ssr-solid-ts/tsconfig.node.json +1 -1
  54. package/template-ssr-svelte/jsconfig.json +1 -1
  55. package/template-ssr-svelte/package.json +5 -5
  56. package/template-ssr-svelte/server.js +4 -4
  57. package/template-ssr-svelte/src/entry-server.js +4 -1
  58. package/template-ssr-svelte-ts/package.json +9 -9
  59. package/template-ssr-svelte-ts/server.js +4 -4
  60. package/template-ssr-svelte-ts/src/entry-server.ts +1 -1
  61. package/template-ssr-svelte-ts/tsconfig.node.json +1 -1
  62. package/template-ssr-transform/package.json +1 -1
  63. package/template-ssr-vanilla/package.json +3 -3
  64. package/template-ssr-vanilla/server.js +4 -4
  65. package/template-ssr-vanilla/src/entry-server.js +4 -1
  66. package/template-ssr-vanilla-ts/package.json +5 -5
  67. package/template-ssr-vanilla-ts/server.js +4 -4
  68. package/template-ssr-vanilla-ts/src/entry-server.ts +1 -1
  69. package/template-ssr-vanilla-ts/tsconfig.json +1 -1
  70. package/template-ssr-vue/package.json +5 -5
  71. package/template-ssr-vue/server.js +4 -4
  72. package/template-ssr-vue/src/entry-server.js +4 -1
  73. package/template-ssr-vue-streaming/package.json +5 -5
  74. package/template-ssr-vue-streaming/server.js +4 -4
  75. package/template-ssr-vue-streaming/src/entry-server.js +4 -1
  76. package/template-ssr-vue-streaming-ts/package.json +8 -8
  77. package/template-ssr-vue-streaming-ts/server.js +4 -4
  78. package/template-ssr-vue-streaming-ts/src/entry-server.ts +1 -1
  79. package/template-ssr-vue-streaming-ts/tsconfig.node.json +1 -1
  80. package/template-ssr-vue-ts/package.json +8 -8
  81. package/template-ssr-vue-ts/server.js +4 -4
  82. package/template-ssr-vue-ts/src/entry-server.ts +1 -1
  83. package/template-ssr-vue-ts/tsconfig.node.json +1 -1
  84. package/template-deno-svelte/jsconfig.json +0 -34
  85. package/template-ssr-preact-ts/package-lock.json +0 -2923
  86. package/template-ssr-react/package-lock.json +0 -2629
  87. package/template-ssr-react-streaming/package-lock.json +0 -2596
  88. package/template-ssr-svelte/package-lock.json +0 -2125
  89. package/template-ssr-svelte-ts/package-lock.json +0 -2345
  90. package/template-ssr-vue-streaming-ts/package-lock.json +0 -2346
  91. package/template-ssr-vue-ts/package-lock.json +0 -2346
  92. /package/template-deno-vanilla/{counter.js → src/counter.js} +0 -0
  93. /package/template-deno-vanilla/{javascript.svg → src/javascript.svg} +0 -0
  94. /package/template-deno-vanilla/{main.js → src/main.js} +0 -0
  95. /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 14.18+, 16+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it.
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": "2.4.0",
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 || >=20.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.3.3"
37
+ "prettier": "^3.4.1"
37
38
  },
38
39
  "scripts": {
39
40
  "format": "prettier --write .",
@@ -9,6 +9,6 @@
9
9
  "imports": {
10
10
  "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
11
11
  "lit": "npm:lit@^3.2.1",
12
- "vite": "npm:vite@^5.4.9"
12
+ "vite": "npm:vite@^6.0.1"
13
13
  }
14
14
  }
@@ -10,6 +10,6 @@
10
10
  "imports": {
11
11
  "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
12
12
  "lit": "npm:lit@^3.2.1",
13
- "vite": "npm:vite@^5.4.9"
13
+ "vite": "npm:vite@^6.0.1"
14
14
  }
15
15
  }
@@ -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.24.3",
17
- "vite": "npm:vite@^5.4.9"
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.24.3",
17
- "vite": "npm:vite@^5.4.9"
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.11",
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.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@^5.4.9"
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.11",
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.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@^5.4.9"
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.2",
16
- "vite": "npm:vite@^5.4.9",
17
- "vite-plugin-solid": "npm:vite-plugin-solid@^2.10.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.2",
16
- "vite": "npm:vite@^5.4.9",
17
- "vite-plugin-solid": "npm:vite-plugin-solid@^2.10.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@^4.0.0",
14
- "svelte": "npm:svelte@^5.0.3",
15
- "vite": "npm:vite@^5.4.9"
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@^4.0.0",
14
- "svelte": "npm:svelte@^5.0.3",
15
- "vite": "npm:vite@^5.4.9"
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,6 +10,6 @@
10
10
  },
11
11
  "imports": {
12
12
  "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
13
- "vite": "npm:vite@^5.4.9"
13
+ "vite": "npm:vite@^6.0.1"
14
14
  }
15
15
  }
@@ -8,6 +8,6 @@
8
8
  </head>
9
9
  <body>
10
10
  <div id="app"></div>
11
- <script type="module" src="/main.js"></script>
11
+ <script type="module" src="/src/main.js"></script>
12
12
  </body>
13
13
  </html>
@@ -10,6 +10,6 @@
10
10
  },
11
11
  "imports": {
12
12
  "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
13
- "vite": "npm:vite@^5.4.9"
13
+ "vite": "npm:vite@^6.0.1"
14
14
  }
15
15
  }
@@ -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.4",
14
- "vite": "npm:vite@^5.4.9",
15
- "vue": "npm:vue@^3.5.12"
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.4",
14
- "vite": "npm:vite@^5.4.9",
15
- "vue": "npm:vue@^3.5.12"
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
  }
@@ -20,6 +20,6 @@
20
20
  "build": "vite build"
21
21
  },
22
22
  "devDependencies": {
23
- "vite": "^5.4.9"
23
+ "vite": "^6.0.1"
24
24
  }
25
25
  }
@@ -20,7 +20,7 @@
20
20
  "build": "tsc && vite build"
21
21
  },
22
22
  "devDependencies": {
23
- "typescript": "~5.6.3",
24
- "vite": "^5.4.9"
23
+ "typescript": "~5.7.2",
24
+ "vite": "^6.0.1"
25
25
  }
26
26
  }
@@ -7,7 +7,7 @@
7
7
  "skipLibCheck": true,
8
8
 
9
9
  /* Bundler mode */
10
- "moduleResolution": "Bundler",
10
+ "moduleResolution": "bundler",
11
11
  "allowImportingTsExtensions": true,
12
12
  "isolatedModules": true,
13
13
  "moduleDetection": "force",
@@ -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 --ssrManifest --outDir dist/client",
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.4",
14
+ "compression": "^1.7.5",
15
15
  "express": "^5.0.1",
16
- "preact": "^10.24.3",
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": "^5.4.9"
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, ssrManifest)
54
+ const rendered = await render(url)
55
55
 
56
56
  const html = template
57
57
  .replace(`<!--app-head-->`, rendered.head ?? '')
@@ -1,7 +1,10 @@
1
1
  import renderToString from 'preact-render-to-string'
2
2
  import { App } from './app'
3
3
 
4
- export function render() {
4
+ /**
5
+ * @param {string} _url
6
+ */
7
+ export function render(_url) {
5
8
  const html = renderToString(<App />)
6
9
  return { html }
7
10
  }
@@ -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 --ssrManifest --outDir dist/client",
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.4",
14
+ "compression": "^1.7.5",
15
15
  "express": "^5.0.1",
16
- "preact": "^10.24.3",
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.7.7",
23
+ "@types/node": "^22.10.0",
24
24
  "cross-env": "^7.0.3",
25
- "typescript": "~5.6.3",
26
- "vite": "^5.4.9"
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, ssrManifest)
54
+ const rendered = await render(url)
55
55
 
56
56
  const html = template
57
57
  .replace(`<!--app-head-->`, rendered.head ?? '')
@@ -1,7 +1,7 @@
1
1
  import renderToString from 'preact-render-to-string'
2
2
  import { App } from './app'
3
3
 
4
- export function render() {
4
+ export function render(_url: string) {
5
5
  const html = renderToString(<App />)
6
6
  return { html }
7
7
  }
@@ -11,7 +11,7 @@
11
11
  },
12
12
 
13
13
  /* Bundler mode */
14
- "moduleResolution": "Bundler",
14
+ "moduleResolution": "bundler",
15
15
  "allowImportingTsExtensions": true,
16
16
  "isolatedModules": true,
17
17
  "moduleDetection": "force",
@@ -8,7 +8,7 @@
8
8
  "skipLibCheck": true,
9
9
 
10
10
  /* Bundler mode */
11
- "moduleResolution": "Bundler",
11
+ "moduleResolution": "bundler",
12
12
  "allowImportingTsExtensions": true,
13
13
  "isolatedModules": true,
14
14
  "moduleDetection": "force",
@@ -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 --ssrManifest --outDir dist/client",
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.4",
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.11",
21
+ "@types/react": "^18.3.12",
22
22
  "@types/react-dom": "^18.3.1",
23
- "@vitejs/plugin-react": "^4.3.3",
23
+ "@vitejs/plugin-react": "^4.3.4",
24
24
  "cross-env": "^7.0.3",
25
- "vite": "^5.4.9"
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, ssrManifest)
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
- export function render() {
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 --ssrManifest --outDir dist/client",
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.4",
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.3",
21
+ "@vitejs/plugin-react": "^4.3.4",
22
22
  "cross-env": "^7.0.3",
23
- "vite": "^5.4.9"
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, ssrManifest, {
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} url
7
- * @param {string} [ssrManifest]
6
+ * @param {string} _url
8
7
  * @param {import('react-dom/server').RenderToPipeableStreamOptions} [options]
9
8
  */
10
- export function render(url, ssrManifest, options) {
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 --ssrManifest --outDir dist/client",
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.4",
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.7.7",
23
- "@types/react": "^18.3.11",
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.3",
25
+ "@vitejs/plugin-react": "^4.3.4",
26
26
  "cross-env": "^7.0.3",
27
- "typescript": "~5.6.3",
28
- "vite": "^5.4.9"
27
+ "typescript": "~5.7.2",
28
+ "vite": "^6.0.1"
29
29
  }
30
30
  }