Skip to content

Commit ed0bf69

Browse files
perf(vite-plugin): load vue transform state only when needed (#17935)
which also eliminates the need for ui package to be built in the monorepo before running quasar prepare
1 parent 97b9431 commit ed0bf69

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

vite-plugin/src/vue-transform.js

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,37 @@ import { readFileSync } from 'node:fs'
44
import { quasarPath } from './quasar-path.js'
55
import { mapQuasarImports, removeQuasarImports, importTransformation } from './js-transform.js'
66

7-
const autoImportData = JSON.parse(
8-
readFileSync(join(quasarPath, 'dist/transforms/auto-import.json'), 'utf-8')
9-
)
10-
11-
const compRegex = {
12-
kebab: new RegExp(`_resolveComponent\\("${ autoImportData.regex.kebabComponents }"\\)`, 'g'),
13-
pascal: new RegExp(`_resolveComponent\\("${ autoImportData.regex.pascalComponents }"\\)`, 'g'),
14-
combined: new RegExp(`_resolveComponent\\("${ autoImportData.regex.components }"\\)`, 'g')
7+
let transformState
8+
function useTransformState () {
9+
if (transformState !== void 0) {
10+
return transformState
11+
}
12+
13+
const autoImportData = JSON.parse(
14+
readFileSync(join(quasarPath, 'dist/transforms/auto-import.json'), 'utf-8')
15+
)
16+
17+
const compRegex = {
18+
kebab: new RegExp(`_resolveComponent\\("${ autoImportData.regex.kebabComponents }"\\)`, 'g'),
19+
pascal: new RegExp(`_resolveComponent\\("${ autoImportData.regex.pascalComponents }"\\)`, 'g'),
20+
combined: new RegExp(`_resolveComponent\\("${ autoImportData.regex.components }"\\)`, 'g')
21+
}
22+
23+
const dirRegex = new RegExp(`_resolveDirective\\("${ autoImportData.regex.directives.replace(/v-/g, '') }"\\)`, 'g')
24+
25+
transformState = {
26+
autoImportData,
27+
compRegex,
28+
dirRegex
29+
}
30+
return transformState
1531
}
1632

17-
const dirRegex = new RegExp(`_resolveDirective\\("${ autoImportData.regex.directives.replace(/v-/g, '') }"\\)`, 'g')
1833
const lengthSortFn = (a, b) => b.length - a.length
1934

2035
export function vueTransform (content, autoImportComponentCase, useTreeshaking) {
36+
const { autoImportData, compRegex, dirRegex } = useTransformState()
37+
2138
const importSet = new Set()
2239
const importMap = {}
2340

0 commit comments

Comments
 (0)