create-vite-extra 2.2.0 → 2.3.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 (213) hide show
  1. package/README.md +2 -2
  2. package/index.js +118 -125
  3. package/package.json +6 -2
  4. package/template-deno-lit/.vscode/extensions.json +3 -0
  5. package/template-deno-lit/README.md +1 -12
  6. package/template-deno-lit/deno.json +8 -0
  7. package/template-deno-lit/index.html +1 -1
  8. package/template-deno-lit/src/my-element.js +3 -3
  9. package/template-deno-lit/vite.config.js +16 -0
  10. package/template-deno-lit-ts/.vscode/extensions.json +3 -0
  11. package/template-deno-lit-ts/README.md +1 -12
  12. package/template-deno-lit-ts/deno.json +9 -0
  13. package/template-deno-lit-ts/index.html +1 -1
  14. package/template-deno-lit-ts/src/my-element.ts +5 -4
  15. package/template-deno-lit-ts/tsconfig.json +1 -0
  16. package/template-deno-lit-ts/vite.config.ts +16 -0
  17. package/template-deno-preact/.vscode/extensions.json +3 -0
  18. package/template-deno-preact/README.md +1 -12
  19. package/template-deno-preact/deno.json +12 -1
  20. package/template-deno-preact/index.html +1 -1
  21. package/template-deno-preact/src/app.jsx +1 -1
  22. package/template-deno-preact/src/main.jsx +1 -1
  23. package/template-deno-preact/vite.config.js +8 -0
  24. package/template-deno-preact-ts/.vscode/extensions.json +3 -0
  25. package/template-deno-preact-ts/README.md +1 -12
  26. package/template-deno-preact-ts/deno.json +12 -1
  27. package/template-deno-preact-ts/index.html +1 -1
  28. package/template-deno-preact-ts/src/app.tsx +2 -1
  29. package/template-deno-preact-ts/src/main.tsx +1 -1
  30. package/template-deno-preact-ts/vite.config.ts +8 -0
  31. package/template-deno-react/.vscode/extensions.json +3 -0
  32. package/template-deno-react/README.md +1 -12
  33. package/template-deno-react/deno.json +16 -1
  34. package/template-deno-react/index.html +1 -1
  35. package/template-deno-react/src/App.jsx +2 -1
  36. package/template-deno-react/src/main.jsx +8 -6
  37. package/template-deno-react/vite.config.js +8 -0
  38. package/template-deno-react-ts/.vscode/extensions.json +3 -0
  39. package/template-deno-react-ts/README.md +1 -12
  40. package/template-deno-react-ts/deno.json +16 -1
  41. package/template-deno-react-ts/index.html +1 -1
  42. package/template-deno-react-ts/src/App.tsx +3 -1
  43. package/template-deno-react-ts/src/main.tsx +8 -6
  44. package/template-deno-react-ts/vite.config.ts +8 -0
  45. package/template-deno-solid/.vscode/extensions.json +3 -0
  46. package/template-deno-solid/README.md +1 -12
  47. package/template-deno-solid/deno.json +12 -1
  48. package/template-deno-solid/index.html +1 -1
  49. package/template-deno-solid/src/App.jsx +1 -1
  50. package/template-deno-solid/src/main.jsx +1 -1
  51. package/template-deno-solid/vite.config.js +8 -0
  52. package/template-deno-solid-ts/.vscode/extensions.json +3 -0
  53. package/template-deno-solid-ts/README.md +1 -12
  54. package/template-deno-solid-ts/deno.json +12 -1
  55. package/template-deno-solid-ts/index.html +1 -1
  56. package/template-deno-solid-ts/src/App.tsx +2 -1
  57. package/template-deno-solid-ts/src/main.tsx +2 -2
  58. package/template-deno-solid-ts/vite.config.ts +8 -0
  59. package/template-deno-svelte/.vscode/extensions.json +1 -1
  60. package/template-deno-svelte/README.md +1 -12
  61. package/template-deno-svelte/deno.json +10 -1
  62. package/template-deno-svelte/index.html +1 -1
  63. package/template-deno-svelte/src/App.svelte +1 -1
  64. package/template-deno-svelte/src/main.js +1 -1
  65. package/template-deno-svelte/svelte.config.js +2 -2
  66. package/template-deno-svelte/vite.config.js +8 -0
  67. package/template-deno-svelte-ts/.vscode/extensions.json +1 -1
  68. package/template-deno-svelte-ts/README.md +1 -12
  69. package/template-deno-svelte-ts/deno.json +10 -1
  70. package/template-deno-svelte-ts/index.html +1 -1
  71. package/template-deno-svelte-ts/src/App.svelte +1 -1
  72. package/template-deno-svelte-ts/svelte.config.js +2 -2
  73. package/template-deno-svelte-ts/vite.config.ts +8 -0
  74. package/template-deno-vanilla/.vscode/extensions.json +3 -0
  75. package/template-deno-vanilla/deno.json +8 -1
  76. package/template-deno-vanilla/index.html +1 -1
  77. package/template-deno-vanilla/main.js +1 -1
  78. package/template-deno-vanilla/vite.config.js +7 -0
  79. package/template-deno-vanilla-ts/.vscode/extensions.json +3 -0
  80. package/template-deno-vanilla-ts/deno.json +8 -1
  81. package/template-deno-vanilla-ts/index.html +1 -1
  82. package/template-deno-vanilla-ts/src/main.ts +1 -1
  83. package/template-deno-vanilla-ts/vite.config.ts +7 -0
  84. package/template-deno-vue/.vscode/extensions.json +3 -0
  85. package/template-deno-vue/README.md +1 -12
  86. package/template-deno-vue/deno.json +10 -1
  87. package/template-deno-vue/index.html +1 -1
  88. package/template-deno-vue/src/App.vue +1 -1
  89. package/template-deno-vue/src/components/HelloWorld.vue +1 -1
  90. package/template-deno-vue/vite.config.js +8 -0
  91. package/template-deno-vue-ts/.vscode/extensions.json +3 -0
  92. package/template-deno-vue-ts/README.md +1 -23
  93. package/template-deno-vue-ts/deno.json +10 -1
  94. package/template-deno-vue-ts/index.html +1 -1
  95. package/template-deno-vue-ts/src/App.vue +1 -1
  96. package/template-deno-vue-ts/vite.config.ts +8 -0
  97. package/template-library/index.html +1 -1
  98. package/template-library/main.js +1 -1
  99. package/template-library/package.json +1 -1
  100. package/template-library/vite.config.js +3 -3
  101. package/template-library-ts/index.html +1 -1
  102. package/template-library-ts/package.json +2 -2
  103. package/template-library-ts/src/main.ts +1 -1
  104. package/template-library-ts/vite.config.ts +3 -3
  105. package/template-ssr-preact/index.html +1 -1
  106. package/template-ssr-preact/package.json +6 -6
  107. package/template-ssr-preact/server.js +2 -2
  108. package/template-ssr-preact/src/app.jsx +1 -1
  109. package/template-ssr-preact/vite.config.js +5 -5
  110. package/template-ssr-preact-ts/index.html +1 -1
  111. package/template-ssr-preact-ts/package.json +9 -9
  112. package/template-ssr-preact-ts/server.js +2 -2
  113. package/template-ssr-preact-ts/src/app.tsx +1 -1
  114. package/template-ssr-preact-ts/vite.config.ts +5 -5
  115. package/template-ssr-react/index.html +1 -1
  116. package/template-ssr-react/package.json +8 -8
  117. package/template-ssr-react/server.js +2 -2
  118. package/template-ssr-react/src/App.jsx +1 -1
  119. package/template-ssr-react/src/entry-client.jsx +5 -5
  120. package/template-ssr-react/src/entry-server.jsx +5 -5
  121. package/template-ssr-react/vite.config.js +2 -2
  122. package/template-ssr-react-streaming/index.html +1 -1
  123. package/template-ssr-react-streaming/package-lock.json +2596 -0
  124. package/template-ssr-react-streaming/package.json +7 -7
  125. package/template-ssr-react-streaming/server.js +4 -4
  126. package/template-ssr-react-streaming/src/App.jsx +1 -1
  127. package/template-ssr-react-streaming/src/Card.jsx +1 -1
  128. package/template-ssr-react-streaming/src/entry-client.jsx +5 -5
  129. package/template-ssr-react-streaming/src/entry-server.jsx +4 -4
  130. package/template-ssr-react-streaming/vite.config.js +2 -2
  131. package/template-ssr-react-streaming-ts/index.html +1 -1
  132. package/template-ssr-react-streaming-ts/package.json +12 -12
  133. package/template-ssr-react-streaming-ts/server.js +4 -4
  134. package/template-ssr-react-streaming-ts/src/App.tsx +1 -1
  135. package/template-ssr-react-streaming-ts/src/entry-client.tsx +5 -5
  136. package/template-ssr-react-streaming-ts/src/entry-server.tsx +13 -6
  137. package/template-ssr-react-streaming-ts/vite.config.ts +2 -2
  138. package/template-ssr-react-ts/index.html +1 -1
  139. package/template-ssr-react-ts/package.json +11 -11
  140. package/template-ssr-react-ts/server.js +2 -2
  141. package/template-ssr-react-ts/src/App.tsx +1 -1
  142. package/template-ssr-react-ts/src/entry-client.tsx +5 -5
  143. package/template-ssr-react-ts/src/entry-server.tsx +5 -5
  144. package/template-ssr-react-ts/vite.config.ts +2 -2
  145. package/template-ssr-solid/index.html +1 -1
  146. package/template-ssr-solid/package.json +4 -4
  147. package/template-ssr-solid/server.js +2 -2
  148. package/template-ssr-solid/src/App.jsx +1 -1
  149. package/template-ssr-solid/vite.config.js +2 -2
  150. package/template-ssr-solid-ts/index.html +1 -1
  151. package/template-ssr-solid-ts/package.json +6 -6
  152. package/template-ssr-solid-ts/server.js +2 -2
  153. package/template-ssr-solid-ts/src/App.tsx +1 -1
  154. package/template-ssr-solid-ts/vite.config.ts +2 -2
  155. package/template-ssr-svelte/index.html +1 -1
  156. package/template-ssr-svelte/package.json +5 -5
  157. package/template-ssr-svelte/server.js +2 -2
  158. package/template-ssr-svelte/src/App.svelte +1 -1
  159. package/template-ssr-svelte/src/entry-client.js +1 -1
  160. package/template-ssr-svelte/svelte.config.js +1 -1
  161. package/template-ssr-svelte/vite.config.js +5 -5
  162. package/template-ssr-svelte-ts/index.html +1 -1
  163. package/template-ssr-svelte-ts/package-lock.json +2376 -0
  164. package/template-ssr-svelte-ts/package.json +10 -10
  165. package/template-ssr-svelte-ts/server.js +2 -2
  166. package/template-ssr-svelte-ts/src/App.svelte +1 -1
  167. package/template-ssr-svelte-ts/src/entry-client.ts +1 -1
  168. package/template-ssr-svelte-ts/svelte.config.js +1 -1
  169. package/template-ssr-svelte-ts/vite.config.ts +5 -5
  170. package/template-ssr-transform/package.json +1 -1
  171. package/template-ssr-vanilla/index.html +1 -1
  172. package/template-ssr-vanilla/package.json +3 -3
  173. package/template-ssr-vanilla/server.js +2 -2
  174. package/template-ssr-vanilla/src/entry-server.js +1 -1
  175. package/template-ssr-vanilla-ts/index.html +1 -1
  176. package/template-ssr-vanilla-ts/package.json +6 -6
  177. package/template-ssr-vanilla-ts/server.js +2 -2
  178. package/template-ssr-vanilla-ts/src/entry-server.ts +1 -1
  179. package/template-ssr-vue/index.html +1 -1
  180. package/template-ssr-vue/package.json +5 -5
  181. package/template-ssr-vue/server.js +2 -2
  182. package/template-ssr-vue/src/App.vue +1 -1
  183. package/template-ssr-vue/src/components/HelloWorld.vue +1 -1
  184. package/template-ssr-vue/vite.config.js +2 -2
  185. package/template-ssr-vue-streaming/index.html +1 -1
  186. package/template-ssr-vue-streaming/package.json +5 -5
  187. package/template-ssr-vue-streaming/server.js +2 -2
  188. package/template-ssr-vue-streaming/src/App.vue +1 -1
  189. package/template-ssr-vue-streaming/src/components/HelloWorld.vue +1 -1
  190. package/template-ssr-vue-streaming/vite.config.js +2 -2
  191. package/template-ssr-vue-streaming-ts/index.html +1 -1
  192. package/template-ssr-vue-streaming-ts/package-lock.json +2346 -0
  193. package/template-ssr-vue-streaming-ts/package.json +9 -9
  194. package/template-ssr-vue-streaming-ts/server.js +2 -2
  195. package/template-ssr-vue-streaming-ts/src/App.vue +1 -1
  196. package/template-ssr-vue-streaming-ts/vite.config.ts +2 -2
  197. package/template-ssr-vue-ts/index.html +1 -1
  198. package/template-ssr-vue-ts/package.json +9 -9
  199. package/template-ssr-vue-ts/server.js +2 -2
  200. package/template-ssr-vue-ts/src/App.vue +1 -1
  201. package/template-ssr-vue-ts/vite.config.ts +2 -2
  202. package/template-deno-lit/vite.config.mjs +0 -16
  203. package/template-deno-lit-ts/vite.config.mts +0 -16
  204. package/template-deno-preact/vite.config.mjs +0 -14
  205. package/template-deno-preact-ts/vite.config.mts +0 -14
  206. package/template-deno-react/vite.config.mjs +0 -10
  207. package/template-deno-react-ts/vite.config.mts +0 -10
  208. package/template-deno-solid/vite.config.mjs +0 -9
  209. package/template-deno-solid-ts/vite.config.mts +0 -9
  210. package/template-deno-svelte/vite.config.mjs +0 -9
  211. package/template-deno-svelte-ts/vite.config.mts +0 -9
  212. package/template-deno-vue/vite.config.mjs +0 -9
  213. package/template-deno-vue-ts/vite.config.mts +0 -9
package/README.md CHANGED
@@ -32,7 +32,7 @@ $ deno run -A npm:create-vite-extra
32
32
  With Bun:
33
33
 
34
34
  ```bash
35
- $ bunx create-vite-extra
35
+ $ bun create vite-extra
36
36
  ```
37
37
 
38
38
  Then follow the prompts!
@@ -53,7 +53,7 @@ pnpm create vite-extra my-vue-app --template ssr-vue
53
53
  deno run -A npm:create-vite-extra --template deno-vue
54
54
 
55
55
  # Bun
56
- bunx create-vite-extra my-vue-app --template ssr-vue
56
+ bun create vite-extra my-vue-app --template ssr-vue
57
57
  ```
58
58
 
59
59
  Currently supported template presets include:
package/index.js CHANGED
@@ -6,18 +6,20 @@ import path from 'node:path'
6
6
  import { fileURLToPath } from 'node:url'
7
7
  import minimist from 'minimist'
8
8
  import prompts from 'prompts'
9
- import {
9
+ import colors from 'picocolors'
10
+
11
+ const {
10
12
  blue,
11
13
  cyan,
12
14
  green,
13
- lightRed,
14
- lightBlue,
15
+ redBright,
16
+ blueBright,
15
17
  magenta,
16
18
  red,
17
19
  reset,
18
20
  yellow,
19
- lightMagenta
20
- } from 'kolorist'
21
+ magentaBright,
22
+ } = colors
21
23
 
22
24
  // Avoids autoconversion to number of the project name by defining that the args
23
25
  // non associated with an option ( _ ) needs to be parsed as a string. See #4606
@@ -32,14 +34,14 @@ const FRAMEWORKS = [
32
34
  {
33
35
  name: 'ssr-vanilla',
34
36
  display: 'JavaScript',
35
- color: yellow
37
+ color: yellow,
36
38
  },
37
39
  {
38
40
  name: 'ssr-vanilla-ts',
39
41
  display: 'TypeScript',
40
- color: blue
41
- }
42
- ]
42
+ color: blue,
43
+ },
44
+ ],
43
45
  },
44
46
  {
45
47
  name: 'ssr-vue',
@@ -53,14 +55,14 @@ const FRAMEWORKS = [
53
55
  {
54
56
  name: 'ssr-vue-streaming',
55
57
  display: 'JavaScript',
56
- color: yellow
58
+ color: yellow,
57
59
  },
58
60
  {
59
61
  name: 'ssr-vue-streaming-ts',
60
62
  display: 'TypeScript',
61
- color: blue
62
- }
63
- ]
63
+ color: blue,
64
+ },
65
+ ],
64
66
  },
65
67
  {
66
68
  name: 'ssr-vue',
@@ -70,16 +72,16 @@ const FRAMEWORKS = [
70
72
  {
71
73
  name: 'ssr-vue',
72
74
  display: 'JavaScript',
73
- color: yellow
75
+ color: yellow,
74
76
  },
75
77
  {
76
78
  name: 'ssr-vue-ts',
77
79
  display: 'TypeScript',
78
- color: blue
79
- }
80
- ]
81
- }
82
- ]
80
+ color: blue,
81
+ },
82
+ ],
83
+ },
84
+ ],
83
85
  },
84
86
  {
85
87
  name: 'ssr-react',
@@ -93,24 +95,24 @@ const FRAMEWORKS = [
93
95
  {
94
96
  name: 'ssr-react-streaming',
95
97
  display: 'JavaScript',
96
- color: yellow
98
+ color: yellow,
97
99
  },
98
100
  {
99
101
  name: 'ssr-react-streaming-ts',
100
102
  display: 'TypeScript',
101
- color: blue
103
+ color: blue,
102
104
  },
103
105
  {
104
106
  name: 'ssr-react-swc-streaming',
105
107
  display: 'JavaScript + SWC',
106
- color: yellow
108
+ color: yellow,
107
109
  },
108
110
  {
109
111
  name: 'ssr-react-swc-streaming-ts',
110
112
  display: 'TypeScript + SWC',
111
- color: blue
112
- }
113
- ]
113
+ color: blue,
114
+ },
115
+ ],
114
116
  },
115
117
  {
116
118
  name: 'ssr-react',
@@ -120,26 +122,26 @@ const FRAMEWORKS = [
120
122
  {
121
123
  name: 'ssr-react',
122
124
  display: 'JavaScript',
123
- color: yellow
125
+ color: yellow,
124
126
  },
125
127
  {
126
128
  name: 'ssr-react-ts',
127
129
  display: 'TypeScript',
128
- color: blue
130
+ color: blue,
129
131
  },
130
132
  {
131
133
  name: 'ssr-react-swc',
132
134
  display: 'JavaScript + SWC',
133
- color: yellow
135
+ color: yellow,
134
136
  },
135
137
  {
136
138
  name: 'ssr-react-swc-ts',
137
139
  display: 'TypeScript + SWC',
138
- color: blue
139
- }
140
- ]
141
- }
142
- ]
140
+ color: blue,
141
+ },
142
+ ],
143
+ },
144
+ ],
143
145
  },
144
146
  {
145
147
  name: 'ssr-preact',
@@ -148,14 +150,14 @@ const FRAMEWORKS = [
148
150
  {
149
151
  name: 'ssr-preact',
150
152
  display: 'JavaScript',
151
- color: yellow
153
+ color: yellow,
152
154
  },
153
155
  {
154
156
  name: 'ssr-preact-ts',
155
157
  display: 'TypeScript',
156
- color: blue
157
- }
158
- ]
158
+ color: blue,
159
+ },
160
+ ],
159
161
  },
160
162
  {
161
163
  name: 'ssr-svelte',
@@ -164,30 +166,30 @@ const FRAMEWORKS = [
164
166
  {
165
167
  name: 'ssr-svelte',
166
168
  display: 'JavaScript',
167
- color: yellow
169
+ color: yellow,
168
170
  },
169
171
  {
170
172
  name: 'ssr-svelte-ts',
171
173
  display: 'TypeScript',
172
- color: blue
173
- }
174
- ]
174
+ color: blue,
175
+ },
176
+ ],
175
177
  },
176
178
  {
177
179
  name: 'ssr-solid',
178
- color: lightBlue,
180
+ color: blueBright,
179
181
  variants: [
180
182
  {
181
183
  name: 'ssr-solid',
182
184
  display: 'JavaScript',
183
- color: yellow
185
+ color: yellow,
184
186
  },
185
187
  {
186
188
  name: 'ssr-solid-ts',
187
189
  display: 'TypeScript',
188
- color: blue
189
- }
190
- ]
190
+ color: blue,
191
+ },
192
+ ],
191
193
  },
192
194
  {
193
195
  name: 'deno-vanilla',
@@ -196,14 +198,14 @@ const FRAMEWORKS = [
196
198
  {
197
199
  name: 'deno-vanilla',
198
200
  display: 'JavaScript',
199
- color: yellow
201
+ color: yellow,
200
202
  },
201
203
  {
202
204
  name: 'deno-vanilla-ts',
203
205
  display: 'TypeScript',
204
- color: blue
205
- }
206
- ]
206
+ color: blue,
207
+ },
208
+ ],
207
209
  },
208
210
  {
209
211
  name: 'deno-vue',
@@ -212,14 +214,14 @@ const FRAMEWORKS = [
212
214
  {
213
215
  name: 'deno-vue',
214
216
  display: 'JavaScript',
215
- color: yellow
217
+ color: yellow,
216
218
  },
217
219
  {
218
220
  name: 'deno-vue-ts',
219
221
  display: 'TypeScript',
220
- color: blue
221
- }
222
- ]
222
+ color: blue,
223
+ },
224
+ ],
223
225
  },
224
226
  {
225
227
  name: 'deno-react',
@@ -228,24 +230,24 @@ const FRAMEWORKS = [
228
230
  {
229
231
  name: 'deno-react',
230
232
  display: 'JavaScript',
231
- color: yellow
233
+ color: yellow,
232
234
  },
233
235
  {
234
236
  name: 'deno-react-ts',
235
237
  display: 'TypeScript',
236
- color: blue
238
+ color: blue,
237
239
  },
238
240
  {
239
241
  name: 'deno-react-swc',
240
242
  display: 'JavaScript + SWC',
241
- color: yellow
243
+ color: yellow,
242
244
  },
243
245
  {
244
246
  name: 'deno-react-swc-ts',
245
247
  display: 'TypeScript + SWC',
246
- color: blue
247
- }
248
- ]
248
+ color: blue,
249
+ },
250
+ ],
249
251
  },
250
252
  {
251
253
  name: 'deno-preact',
@@ -254,30 +256,30 @@ const FRAMEWORKS = [
254
256
  {
255
257
  name: 'deno-preact',
256
258
  display: 'JavaScript',
257
- color: yellow
259
+ color: yellow,
258
260
  },
259
261
  {
260
262
  name: 'deno-preact-ts',
261
263
  display: 'TypeScript',
262
- color: blue
263
- }
264
- ]
264
+ color: blue,
265
+ },
266
+ ],
265
267
  },
266
268
  {
267
269
  name: 'deno-lit',
268
- color: lightRed,
270
+ color: redBright,
269
271
  variants: [
270
272
  {
271
273
  name: 'deno-lit',
272
274
  display: 'JavaScript',
273
- color: yellow
275
+ color: yellow,
274
276
  },
275
277
  {
276
278
  name: 'deno-lit-ts',
277
279
  display: 'TypeScript',
278
- color: blue
279
- }
280
- ]
280
+ color: blue,
281
+ },
282
+ ],
281
283
  },
282
284
  {
283
285
  name: 'deno-svelte',
@@ -286,59 +288,59 @@ const FRAMEWORKS = [
286
288
  {
287
289
  name: 'deno-svelte',
288
290
  display: 'JavaScript',
289
- color: yellow
291
+ color: yellow,
290
292
  },
291
293
  {
292
294
  name: 'deno-svelte-ts',
293
295
  display: 'TypeScript',
294
- color: blue
295
- }
296
- ]
296
+ color: blue,
297
+ },
298
+ ],
297
299
  },
298
300
  {
299
301
  name: 'deno-solid',
300
- color: lightBlue,
302
+ color: blueBright,
301
303
  variants: [
302
304
  {
303
305
  name: 'deno-solid',
304
306
  display: 'JavaScript',
305
- color: yellow
307
+ color: yellow,
306
308
  },
307
309
  {
308
310
  name: 'deno-solid-ts',
309
311
  display: 'TypeScript',
310
- color: blue
311
- }
312
- ]
312
+ color: blue,
313
+ },
314
+ ],
313
315
  },
314
316
  {
315
317
  name: 'library',
316
- color: lightMagenta,
318
+ color: magentaBright,
317
319
  variants: [
318
320
  {
319
321
  name: 'library',
320
322
  display: 'JavaScript',
321
- color: yellow
323
+ color: yellow,
322
324
  },
323
325
  {
324
326
  name: 'library-ts',
325
327
  display: 'TypeScript',
326
- color: blue
327
- }
328
- ]
328
+ color: blue,
329
+ },
330
+ ],
329
331
  },
330
332
  {
331
333
  name: 'ssr-transform',
332
- color: lightRed
333
- }
334
+ color: redBright,
335
+ },
334
336
  ]
335
337
 
336
338
  const TEMPLATES = FRAMEWORKS.map(
337
- (f) => (f.variants && f.variants.map((v) => v.name)) || [f.name]
339
+ (f) => (f.variants && f.variants.map((v) => v.name)) || [f.name],
338
340
  ).reduce((a, b) => a.concat(b), [])
339
341
 
340
342
  const renameFiles = {
341
- _gitignore: '.gitignore'
343
+ _gitignore: '.gitignore',
342
344
  }
343
345
 
344
346
  async function init() {
@@ -363,7 +365,7 @@ async function init() {
363
365
  initial: defaultTargetDir,
364
366
  onState: (state) => {
365
367
  targetDir = formatTargetDir(state.value) || defaultTargetDir
366
- }
368
+ },
367
369
  },
368
370
  {
369
371
  type: () =>
@@ -373,7 +375,7 @@ async function init() {
373
375
  (targetDir === '.'
374
376
  ? 'Current directory'
375
377
  : `Target directory "${targetDir}"`) +
376
- ` is not empty. Remove existing files and continue?`
378
+ ` is not empty. Remove existing files and continue?`,
377
379
  },
378
380
  {
379
381
  // @ts-ignore
@@ -383,7 +385,7 @@ async function init() {
383
385
  }
384
386
  return null
385
387
  },
386
- name: 'overwriteChecker'
388
+ name: 'overwriteChecker',
387
389
  },
388
390
  {
389
391
  type: () => (isValidPackageName(getProjectName()) ? null : 'text'),
@@ -391,7 +393,7 @@ async function init() {
391
393
  message: reset('Package name:'),
392
394
  initial: () => toValidPackageName(getProjectName()),
393
395
  validate: (dir) =>
394
- isValidPackageName(dir) || 'Invalid package.json name'
396
+ isValidPackageName(dir) || 'Invalid package.json name',
395
397
  },
396
398
  {
397
399
  type:
@@ -400,7 +402,7 @@ async function init() {
400
402
  message:
401
403
  typeof argTemplate === 'string' && !TEMPLATES.includes(argTemplate)
402
404
  ? reset(
403
- `"${argTemplate}" isn't a valid template. Please choose from below: `
405
+ `"${argTemplate}" isn't a valid template. Please choose from below: `,
404
406
  )
405
407
  : reset('Select a template:'),
406
408
  initial: 0,
@@ -408,9 +410,9 @@ async function init() {
408
410
  const frameworkColor = framework.color
409
411
  return {
410
412
  title: frameworkColor(framework.display || framework.name),
411
- value: framework
413
+ value: framework,
412
414
  }
413
- })
415
+ }),
414
416
  },
415
417
  // Variant 1
416
418
  {
@@ -424,9 +426,9 @@ async function init() {
424
426
  const variantColor = variant.color
425
427
  return {
426
428
  title: variantColor(variant.display || variant.name),
427
- value: variant.variants ? variant : variant.name
429
+ value: variant.variants ? variant : variant.name,
428
430
  }
429
- })
431
+ }),
430
432
  },
431
433
  // Variant 2
432
434
  {
@@ -440,16 +442,16 @@ async function init() {
440
442
  const variantColor = variant.color
441
443
  return {
442
444
  title: variantColor(variant.display || variant.name),
443
- value: variant.name
445
+ value: variant.name,
444
446
  }
445
- })
446
- }
447
+ }),
448
+ },
447
449
  ],
448
450
  {
449
451
  onCancel: () => {
450
452
  throw new Error(red('✖') + ' Operation cancelled')
451
- }
452
- }
453
+ },
454
+ },
453
455
  )
454
456
  } catch (cancelled) {
455
457
  console.log(cancelled.message)
@@ -480,7 +482,7 @@ async function init() {
480
482
  const templateDir = path.resolve(
481
483
  fileURLToPath(import.meta.url),
482
484
  '..',
483
- `template-${template}`
485
+ `template-${template}`,
484
486
  )
485
487
 
486
488
  const write = (file, content) => {
@@ -513,7 +515,7 @@ async function init() {
513
515
  console.log()
514
516
  } else {
515
517
  const pkg = JSON.parse(
516
- fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8')
518
+ fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8'),
517
519
  )
518
520
 
519
521
  pkg.name = packageName || getProjectName()
@@ -566,7 +568,7 @@ function copy(src, dest) {
566
568
  */
567
569
  function isValidPackageName(projectName) {
568
570
  return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(
569
- projectName
571
+ projectName,
570
572
  )
571
573
  }
572
574
 
@@ -625,7 +627,7 @@ function pkgFromUserAgent(userAgent) {
625
627
  const pkgSpecArr = pkgSpec.split('/')
626
628
  return {
627
629
  name: pkgSpecArr[0],
628
- version: pkgSpecArr[1]
630
+ version: pkgSpecArr[1],
629
631
  }
630
632
  }
631
633
 
@@ -636,34 +638,25 @@ function pkgFromUserAgent(userAgent) {
636
638
  function setupReactSwc(root, { isTs, isDeno }) {
637
639
  if (isDeno) {
638
640
  editFile(path.resolve(root, 'deno.json'), (content) => {
639
- return content.replace(/deno run -A/g, 'deno run -A --unstable')
641
+ return content.replace(
642
+ /"@vitejs\/plugin-react": ".+?"/,
643
+ `"@vitejs/plugin-react-swc": "npm:@vitejs/plugin-react-swc@^3.7.1"`,
644
+ )
640
645
  })
641
- editFile(
642
- path.resolve(root, `vite.config.m${isTs ? 'ts' : 'js'}`),
643
- (content) => {
644
- return content.replace(
645
- /@vitejs\/plugin-react@.+?'/,
646
- "@vitejs/plugin-react-swc@^3.5.0'"
647
- )
648
- }
649
- )
650
646
  } else {
651
647
  editFile(path.resolve(root, 'package.json'), (content) => {
652
648
  return content.replace(
653
649
  /"@vitejs\/plugin-react": ".+?"/,
654
- `"@vitejs/plugin-react-swc": "^3.5.0"`
650
+ `"@vitejs/plugin-react-swc": "^3.7.1"`,
655
651
  )
656
652
  })
657
- editFile(
658
- path.resolve(root, `vite.config.${isTs ? 'ts' : 'js'}`),
659
- (content) => {
660
- return content.replace(
661
- '@vitejs/plugin-react',
662
- '@vitejs/plugin-react-swc'
663
- )
664
- }
665
- )
666
653
  }
654
+ editFile(
655
+ path.resolve(root, `vite.config.${isTs ? 'ts' : 'js'}`),
656
+ (content) => {
657
+ return content.replace('@vitejs/plugin-react', '@vitejs/plugin-react-swc')
658
+ },
659
+ )
667
660
  }
668
661
 
669
662
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-vite-extra",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Bjorn Lu",
@@ -28,11 +28,15 @@
28
28
  },
29
29
  "homepage": "https://github.com/bluwy/create-vite-extra#readme",
30
30
  "dependencies": {
31
- "kolorist": "^1.8.0",
32
31
  "minimist": "^1.2.8",
32
+ "picocolors": "^1.1.0",
33
33
  "prompts": "^2.4.2"
34
34
  },
35
+ "devDependencies": {
36
+ "prettier": "^3.3.3"
37
+ },
35
38
  "scripts": {
39
+ "format": "prettier --write .",
36
40
  "update-deps": "pnpm update -r --latest && node update-deno-deps.js"
37
41
  }
38
42
  }
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["denoland.vscode-deno"]
3
+ }
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Running
4
4
 
5
- You need to have Deno v1.28.0 or later intalled to run this repo.
5
+ You need to have Deno v2.0.0 or later intalled to run this repo.
6
6
 
7
7
  Start a dev server:
8
8
 
@@ -17,14 +17,3 @@ Build production assets:
17
17
  ```
18
18
  $ deno task build
19
19
  ```
20
-
21
- ## Notes
22
-
23
- - You need to use `.mjs` or `.mts` extension for the `vite.config.[ext]` file.
24
-
25
- ## Papercuts
26
-
27
- Currently there's a "papercut" for Deno users:
28
-
29
- - peer dependencies need to be referenced in `vite.config.js` - in this example
30
- it is `lit` package that needs to be referenced
@@ -2,5 +2,13 @@
2
2
  "tasks": {
3
3
  "dev": "deno run -A --node-modules-dir npm:vite",
4
4
  "build": "deno run -A --node-modules-dir npm:vite build"
5
+ },
6
+ "compilerOptions": {
7
+ "lib": ["ES2020", "DOM", "DOM.Iterable"]
8
+ },
9
+ "imports": {
10
+ "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
11
+ "lit": "npm:lit@^2.7.5",
12
+ "vite": "npm:vite@^5.4.8"
5
13
  }
6
14
  }
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
@@ -18,7 +18,7 @@ export class MyElement extends LitElement {
18
18
  /**
19
19
  * The number of times the button has been clicked.
20
20
  */
21
- count: { type: Number }
21
+ count: { type: Number },
22
22
  }
23
23
  }
24
24
 
@@ -32,7 +32,7 @@ export class MyElement extends LitElement {
32
32
  return html`
33
33
  <img src="/vite-deno.svg" alt="Vite with Deno" />
34
34
  <div>
35
- <a href="https://vitejs.dev" target="_blank">
35
+ <a href="https://vite.dev" target="_blank">
36
36
  <img src="/vite.svg" class="logo" alt="Vite logo" />
37
37
  </a>
38
38
  <a href="https://lit.dev" target="_blank">
@@ -127,4 +127,4 @@ export class MyElement extends LitElement {
127
127
  }
128
128
  }
129
129
 
130
- window.customElements.define('my-element', MyElement)
130
+ globalThis.customElements.define('my-element', MyElement)
@@ -0,0 +1,16 @@
1
+ import { defineConfig } from 'vite'
2
+ import deno from '@deno/vite-plugin'
3
+
4
+ // https://vite.dev/config/
5
+ export default defineConfig({
6
+ plugins: [deno()],
7
+ build: {
8
+ lib: {
9
+ entry: 'src/my-element.js',
10
+ formats: ['es'],
11
+ },
12
+ rollupOptions: {
13
+ external: /^lit/,
14
+ },
15
+ },
16
+ })