vitrify 0.5.8 → 0.6.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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { promises as fs } from 'fs';
|
|
2
2
|
import { routesToPaths } from '../../helpers/routes.js';
|
|
3
|
+
import Critters from 'critters';
|
|
3
4
|
export const prerender = async ({ outDir, templatePath, manifestPath, entryServerPath, onRenderedHooks }) => {
|
|
4
5
|
const promises = [];
|
|
5
6
|
const template = (await fs.readFile(templatePath)).toString();
|
|
@@ -7,6 +8,13 @@ export const prerender = async ({ outDir, templatePath, manifestPath, entryServe
|
|
|
7
8
|
const { render, getRoutes } = await import(entryServerPath);
|
|
8
9
|
const routes = await getRoutes();
|
|
9
10
|
const paths = routesToPaths(routes).filter((i) => !i.includes(':') && !i.includes('*'));
|
|
11
|
+
const critters = new Critters({
|
|
12
|
+
path: outDir,
|
|
13
|
+
logLevel: 'warn',
|
|
14
|
+
external: true,
|
|
15
|
+
inlineFonts: true,
|
|
16
|
+
preloadFonts: true
|
|
17
|
+
});
|
|
10
18
|
for (const url of paths) {
|
|
11
19
|
const filename = (url.endsWith('/') ? 'index' : url.replace(/^\//g, '')) + '.html';
|
|
12
20
|
console.log(`Generating ${filename}`);
|
|
@@ -18,6 +26,7 @@ export const prerender = async ({ outDir, templatePath, manifestPath, entryServe
|
|
|
18
26
|
let html = template
|
|
19
27
|
.replace(`<!--preload-links-->`, preloadLinks)
|
|
20
28
|
.replace(`<!--app-html-->`, appHtml);
|
|
29
|
+
html = await critters.process(html);
|
|
21
30
|
if (onRenderedHooks?.length) {
|
|
22
31
|
for (const ssrFunction of onRenderedHooks) {
|
|
23
32
|
html = ssrFunction(html, ssrContext);
|
package/dist/index.js
CHANGED
package/dist/plugins/quasar.js
CHANGED
|
@@ -35,28 +35,19 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
35
35
|
Components({
|
|
36
36
|
resolvers: [QuasarResolver()]
|
|
37
37
|
}),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
// ssr ? '!import.meta.env.SSR' : 'false'
|
|
52
|
-
// )
|
|
53
|
-
// .replaceAll(
|
|
54
|
-
// '__QUASAR_SSR_PWA__',
|
|
55
|
-
// ssr && pwa ? '!import.meta.env.SSR' : 'false'
|
|
56
|
-
// )
|
|
57
|
-
// return code
|
|
58
|
-
// }
|
|
59
|
-
// },
|
|
38
|
+
{
|
|
39
|
+
name: 'vite-plugin-quasar-transform',
|
|
40
|
+
enforce: 'pre',
|
|
41
|
+
transform: (code, id, options) => {
|
|
42
|
+
const { ssr: transformSsr } = options || {};
|
|
43
|
+
code = code
|
|
44
|
+
.replaceAll('__QUASAR_SSR__', ssr ? 'true' : 'false')
|
|
45
|
+
.replaceAll('__QUASAR_SSR_SERVER__', 'import.meta.env.SSR')
|
|
46
|
+
.replaceAll('__QUASAR_SSR_CLIENT__', '!import.meta.env.SSR')
|
|
47
|
+
.replaceAll('__QUASAR_SSR_PWA__', pwa ? '!import.meta.env.SSR' : 'false');
|
|
48
|
+
return code;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
60
51
|
{
|
|
61
52
|
name: 'vite-plugin-quasar-setup',
|
|
62
53
|
enforce: 'pre',
|
|
@@ -139,8 +130,15 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
139
130
|
plugins = quasarConf?.framework.plugins;
|
|
140
131
|
}
|
|
141
132
|
return {
|
|
133
|
+
// build: {
|
|
134
|
+
// rollupOptions: {
|
|
135
|
+
// treeshake: {
|
|
136
|
+
// moduleSideEffects: 'no-external'
|
|
137
|
+
// }
|
|
138
|
+
// }
|
|
139
|
+
// },
|
|
142
140
|
resolve: {
|
|
143
|
-
dedupe: ['quasar', '@quasar/extras'],
|
|
141
|
+
// dedupe: ['quasar', '@quasar/extras'],
|
|
144
142
|
alias: [
|
|
145
143
|
// {
|
|
146
144
|
// find: 'quasar/wrappers',
|
|
@@ -179,15 +177,18 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
179
177
|
// urls?.packages?.quasar
|
|
180
178
|
// ).pathname
|
|
181
179
|
// },
|
|
182
|
-
// {
|
|
183
|
-
// find: 'quasar/src',
|
|
184
|
-
// replacement: new URL('src/', urls?.packages?.quasar).pathname
|
|
185
|
-
// }
|
|
186
180
|
{
|
|
187
|
-
find:
|
|
188
|
-
replacement: 'quasar/src/
|
|
181
|
+
find: 'quasar/src',
|
|
182
|
+
replacement: new URL('node_modules/quasar/src/', config.vitrify?.urls?.app).pathname
|
|
189
183
|
}
|
|
190
184
|
// {
|
|
185
|
+
// find: 'quasar',
|
|
186
|
+
// replacement: new URL(
|
|
187
|
+
// 'node_modules/quasar',
|
|
188
|
+
// config.vitrify?.urls?.app
|
|
189
|
+
// )
|
|
190
|
+
// }
|
|
191
|
+
// {
|
|
191
192
|
// find: new RegExp('^quasar$'),
|
|
192
193
|
// replacement: new URL('src/index.all.js', urls?.packages?.quasar)
|
|
193
194
|
// .pathname
|
|
@@ -205,14 +206,14 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
205
206
|
},
|
|
206
207
|
define: {
|
|
207
208
|
__DEV__: process.env.NODE_ENV !== 'production' || true,
|
|
208
|
-
__QUASAR_VERSION__: `'${version}'
|
|
209
|
-
__QUASAR_SSR__: !!ssr,
|
|
210
|
-
// __QUASAR_SSR_SERVER__: ssr === 'server',
|
|
211
|
-
__QUASAR_SSR_SERVER__: `import.meta.env.SSR`,
|
|
212
|
-
// __QUASAR_SSR_CLIENT__: ssr === 'client',
|
|
213
|
-
__QUASAR_SSR_CLIENT__: `!import.meta.env.SSR`,
|
|
214
|
-
// __QUASAR_SSR_PWA__: ssr === 'client' && pwa
|
|
215
|
-
__QUASAR_SSR_PWA__: pwa ? `!import.meta.env.SSR` : false
|
|
209
|
+
__QUASAR_VERSION__: `'${version}'`
|
|
210
|
+
// __QUASAR_SSR__: !!ssr,
|
|
211
|
+
// // __QUASAR_SSR_SERVER__: ssr === 'server',
|
|
212
|
+
// __QUASAR_SSR_SERVER__: `import.meta.env.SSR`,
|
|
213
|
+
// // __QUASAR_SSR_CLIENT__: ssr === 'client',
|
|
214
|
+
// __QUASAR_SSR_CLIENT__: `!import.meta.env.SSR`,
|
|
215
|
+
// // __QUASAR_SSR_PWA__: ssr === 'client' && pwa
|
|
216
|
+
// __QUASAR_SSR_PWA__: pwa ? `!import.meta.env.SSR` : false
|
|
216
217
|
},
|
|
217
218
|
ssr: {
|
|
218
219
|
noExternal: ['quasar']
|
|
@@ -226,7 +227,11 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
226
227
|
config: async (config, env) => ({
|
|
227
228
|
resolve: {
|
|
228
229
|
alias: [
|
|
229
|
-
|
|
230
|
+
{
|
|
231
|
+
find: new RegExp('^quasar$'),
|
|
232
|
+
replacement: 'virtual:quasar'
|
|
233
|
+
}
|
|
234
|
+
// { find: new RegExp('^quasar$'), replacement: 'virtual:quasar' }
|
|
230
235
|
]
|
|
231
236
|
}
|
|
232
237
|
}),
|
|
@@ -236,8 +241,8 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
236
241
|
return 'virtual:quasar-plugins';
|
|
237
242
|
case 'virtual:quasar-directives':
|
|
238
243
|
return 'virtual:quasar-directives';
|
|
239
|
-
case 'quasar':
|
|
240
|
-
return { id: 'quasar', moduleSideEffects: false };
|
|
244
|
+
case 'virtual:quasar':
|
|
245
|
+
return { id: 'virtual:quasar', moduleSideEffects: false };
|
|
241
246
|
default:
|
|
242
247
|
return;
|
|
243
248
|
}
|
|
@@ -247,15 +252,15 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
247
252
|
return `export { ${plugins.join(',')} } from 'quasar'`;
|
|
248
253
|
}
|
|
249
254
|
else if (id === 'virtual:quasar-directives') {
|
|
250
|
-
return `export * from 'quasar/src/directives'`;
|
|
255
|
+
return `export * from 'quasar/src/directives.js'`;
|
|
251
256
|
}
|
|
252
|
-
else if (id === 'quasar') {
|
|
253
|
-
return `export * from 'quasar/src/plugins';
|
|
254
|
-
export * from 'quasar/src/components';
|
|
255
|
-
export * from 'quasar/src/composables';
|
|
256
|
-
export * from 'quasar/src/directives';
|
|
257
|
-
export * from 'quasar/src/utils';
|
|
258
|
-
export { default as Quasar } from 'quasar/src/install-quasar'`;
|
|
257
|
+
else if (id === 'virtual:quasar') {
|
|
258
|
+
return `export * from 'quasar/src/plugins.js';
|
|
259
|
+
export * from 'quasar/src/components.js';
|
|
260
|
+
export * from 'quasar/src/composables.js';
|
|
261
|
+
export * from 'quasar/src/directives.js';
|
|
262
|
+
export * from 'quasar/src/utils.js';
|
|
263
|
+
export { default as Quasar } from 'quasar/src/install-quasar.js'`;
|
|
259
264
|
}
|
|
260
265
|
return null;
|
|
261
266
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { promises as fs } from 'fs'
|
|
2
2
|
import { routesToPaths } from '../../helpers/routes.js'
|
|
3
3
|
import type { OnRenderedHook } from '../../vitrify-config.js'
|
|
4
|
+
import Critters from 'critters'
|
|
4
5
|
|
|
5
6
|
export const prerender = async ({
|
|
6
7
|
outDir,
|
|
@@ -23,6 +24,13 @@ export const prerender = async ({
|
|
|
23
24
|
const paths = routesToPaths(routes).filter(
|
|
24
25
|
(i) => !i.includes(':') && !i.includes('*')
|
|
25
26
|
)
|
|
27
|
+
const critters = new Critters({
|
|
28
|
+
path: outDir,
|
|
29
|
+
logLevel: 'warn',
|
|
30
|
+
external: true,
|
|
31
|
+
inlineFonts: true,
|
|
32
|
+
preloadFonts: true
|
|
33
|
+
})
|
|
26
34
|
for (const url of paths) {
|
|
27
35
|
const filename =
|
|
28
36
|
(url.endsWith('/') ? 'index' : url.replace(/^\//g, '')) + '.html'
|
|
@@ -37,6 +45,8 @@ export const prerender = async ({
|
|
|
37
45
|
.replace(`<!--preload-links-->`, preloadLinks)
|
|
38
46
|
.replace(`<!--app-html-->`, appHtml)
|
|
39
47
|
|
|
48
|
+
html = await critters.process(html)
|
|
49
|
+
|
|
40
50
|
if (onRenderedHooks?.length) {
|
|
41
51
|
for (const ssrFunction of onRenderedHooks) {
|
|
42
52
|
html = ssrFunction(html, ssrContext)
|
package/src/node/index.ts
CHANGED
|
@@ -86,29 +86,23 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
86
86
|
Components({
|
|
87
87
|
resolvers: [QuasarResolver()]
|
|
88
88
|
}),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
// ssr ? '!import.meta.env.SSR' : 'false'
|
|
103
|
-
// )
|
|
104
|
-
// .replaceAll(
|
|
105
|
-
// '__QUASAR_SSR_PWA__',
|
|
106
|
-
// ssr && pwa ? '!import.meta.env.SSR' : 'false'
|
|
107
|
-
// )
|
|
89
|
+
{
|
|
90
|
+
name: 'vite-plugin-quasar-transform',
|
|
91
|
+
enforce: 'pre',
|
|
92
|
+
transform: (code, id, options) => {
|
|
93
|
+
const { ssr: transformSsr } = options || {}
|
|
94
|
+
code = code
|
|
95
|
+
.replaceAll('__QUASAR_SSR__', ssr ? 'true' : 'false')
|
|
96
|
+
.replaceAll('__QUASAR_SSR_SERVER__', 'import.meta.env.SSR')
|
|
97
|
+
.replaceAll('__QUASAR_SSR_CLIENT__', '!import.meta.env.SSR')
|
|
98
|
+
.replaceAll(
|
|
99
|
+
'__QUASAR_SSR_PWA__',
|
|
100
|
+
pwa ? '!import.meta.env.SSR' : 'false'
|
|
101
|
+
)
|
|
108
102
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
103
|
+
return code
|
|
104
|
+
}
|
|
105
|
+
},
|
|
112
106
|
{
|
|
113
107
|
name: 'vite-plugin-quasar-setup',
|
|
114
108
|
enforce: 'pre',
|
|
@@ -209,8 +203,15 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
209
203
|
}
|
|
210
204
|
|
|
211
205
|
return {
|
|
206
|
+
// build: {
|
|
207
|
+
// rollupOptions: {
|
|
208
|
+
// treeshake: {
|
|
209
|
+
// moduleSideEffects: 'no-external'
|
|
210
|
+
// }
|
|
211
|
+
// }
|
|
212
|
+
// },
|
|
212
213
|
resolve: {
|
|
213
|
-
dedupe: ['quasar', '@quasar/extras'],
|
|
214
|
+
// dedupe: ['quasar', '@quasar/extras'],
|
|
214
215
|
alias: [
|
|
215
216
|
// {
|
|
216
217
|
// find: 'quasar/wrappers',
|
|
@@ -249,15 +250,21 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
249
250
|
// urls?.packages?.quasar
|
|
250
251
|
// ).pathname
|
|
251
252
|
// },
|
|
252
|
-
// {
|
|
253
|
-
// find: 'quasar/src',
|
|
254
|
-
// replacement: new URL('src/', urls?.packages?.quasar).pathname
|
|
255
|
-
// }
|
|
256
253
|
{
|
|
257
|
-
find:
|
|
258
|
-
replacement:
|
|
254
|
+
find: 'quasar/src',
|
|
255
|
+
replacement: new URL(
|
|
256
|
+
'node_modules/quasar/src/',
|
|
257
|
+
config.vitrify?.urls?.app
|
|
258
|
+
).pathname
|
|
259
259
|
}
|
|
260
260
|
// {
|
|
261
|
+
// find: 'quasar',
|
|
262
|
+
// replacement: new URL(
|
|
263
|
+
// 'node_modules/quasar',
|
|
264
|
+
// config.vitrify?.urls?.app
|
|
265
|
+
// )
|
|
266
|
+
// }
|
|
267
|
+
// {
|
|
261
268
|
// find: new RegExp('^quasar$'),
|
|
262
269
|
// replacement: new URL('src/index.all.js', urls?.packages?.quasar)
|
|
263
270
|
// .pathname
|
|
@@ -275,14 +282,14 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
275
282
|
},
|
|
276
283
|
define: {
|
|
277
284
|
__DEV__: process.env.NODE_ENV !== 'production' || true,
|
|
278
|
-
__QUASAR_VERSION__: `'${version}'
|
|
279
|
-
__QUASAR_SSR__: !!ssr,
|
|
280
|
-
// __QUASAR_SSR_SERVER__: ssr === 'server',
|
|
281
|
-
__QUASAR_SSR_SERVER__: `import.meta.env.SSR`,
|
|
282
|
-
// __QUASAR_SSR_CLIENT__: ssr === 'client',
|
|
283
|
-
__QUASAR_SSR_CLIENT__: `!import.meta.env.SSR`,
|
|
284
|
-
// __QUASAR_SSR_PWA__: ssr === 'client' && pwa
|
|
285
|
-
__QUASAR_SSR_PWA__: pwa ? `!import.meta.env.SSR` : false
|
|
285
|
+
__QUASAR_VERSION__: `'${version}'`
|
|
286
|
+
// __QUASAR_SSR__: !!ssr,
|
|
287
|
+
// // __QUASAR_SSR_SERVER__: ssr === 'server',
|
|
288
|
+
// __QUASAR_SSR_SERVER__: `import.meta.env.SSR`,
|
|
289
|
+
// // __QUASAR_SSR_CLIENT__: ssr === 'client',
|
|
290
|
+
// __QUASAR_SSR_CLIENT__: `!import.meta.env.SSR`,
|
|
291
|
+
// // __QUASAR_SSR_PWA__: ssr === 'client' && pwa
|
|
292
|
+
// __QUASAR_SSR_PWA__: pwa ? `!import.meta.env.SSR` : false
|
|
286
293
|
},
|
|
287
294
|
ssr: {
|
|
288
295
|
noExternal: ['quasar']
|
|
@@ -296,6 +303,10 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
296
303
|
config: async (config, env) => ({
|
|
297
304
|
resolve: {
|
|
298
305
|
alias: [
|
|
306
|
+
{
|
|
307
|
+
find: new RegExp('^quasar$'),
|
|
308
|
+
replacement: 'virtual:quasar'
|
|
309
|
+
}
|
|
299
310
|
// { find: new RegExp('^quasar$'), replacement: 'virtual:quasar' }
|
|
300
311
|
]
|
|
301
312
|
}
|
|
@@ -306,8 +317,8 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
306
317
|
return 'virtual:quasar-plugins'
|
|
307
318
|
case 'virtual:quasar-directives':
|
|
308
319
|
return 'virtual:quasar-directives'
|
|
309
|
-
case 'quasar':
|
|
310
|
-
return { id: 'quasar', moduleSideEffects: false }
|
|
320
|
+
case 'virtual:quasar':
|
|
321
|
+
return { id: 'virtual:quasar', moduleSideEffects: false }
|
|
311
322
|
default:
|
|
312
323
|
return
|
|
313
324
|
}
|
|
@@ -316,14 +327,14 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
316
327
|
if (id === 'virtual:quasar-plugins') {
|
|
317
328
|
return `export { ${plugins.join(',')} } from 'quasar'`
|
|
318
329
|
} else if (id === 'virtual:quasar-directives') {
|
|
319
|
-
return `export * from 'quasar/src/directives'`
|
|
320
|
-
} else if (id === 'quasar') {
|
|
321
|
-
return `export * from 'quasar/src/plugins';
|
|
322
|
-
export * from 'quasar/src/components';
|
|
323
|
-
export * from 'quasar/src/composables';
|
|
324
|
-
export * from 'quasar/src/directives';
|
|
325
|
-
export * from 'quasar/src/utils';
|
|
326
|
-
export { default as Quasar } from 'quasar/src/install-quasar'`
|
|
330
|
+
return `export * from 'quasar/src/directives.js'`
|
|
331
|
+
} else if (id === 'virtual:quasar') {
|
|
332
|
+
return `export * from 'quasar/src/plugins.js';
|
|
333
|
+
export * from 'quasar/src/components.js';
|
|
334
|
+
export * from 'quasar/src/composables.js';
|
|
335
|
+
export * from 'quasar/src/directives.js';
|
|
336
|
+
export * from 'quasar/src/utils.js';
|
|
337
|
+
export { default as Quasar } from 'quasar/src/install-quasar.js'`
|
|
327
338
|
}
|
|
328
339
|
return null
|
|
329
340
|
}
|