@quasar/app-vite
Version:
Quasar Framework App CLI with Vite
56 lines (44 loc) • 1.67 kB
JavaScript
import { join } from 'node:path'
import { readFileSync } from 'node:fs'
import { createViteConfig, extendViteConfig } from '../../config-tools.js'
import { escapeRegexString } from '../../utils/escape-regex-string.js'
export const quasarCapacitorConfig = {
vite: async quasarConf => {
const cfg = await createViteConfig(quasarConf, { compileId: 'vite-capacitor' })
const { appPaths, cacheProxy } = quasarConf.ctx
const { capacitorRE, target, injectAliases } = cacheProxy.getRuntime('runtimeCapacitorConfig', () => {
const { dependencies } = JSON.parse(
readFileSync(appPaths.resolve.capacitor('package.json'), 'utf-8')
)
const target = appPaths.resolve.capacitor('node_modules')
const depsList = Object.keys(dependencies)
const capacitorRE = new RegExp('^(' + depsList.map(escapeRegexString).join('|') + ')')
return {
capacitorRE,
target,
injectAliases (alias) {
// we need to set alias as capacitor deps
// are installed in /src-capacitor and not in root
// so it breaks Vite
depsList.forEach(dep => {
alias[ dep ] = join(target, dep)
})
}
}
})
injectAliases(cfg.resolve.alias)
cfg.plugins.unshift({
name: 'quasar:resolve-capacitor-deps',
resolveId (id) {
if (capacitorRE.test(id)) {
return join(target, id)
}
}
})
if (quasarConf.ctx.prod === true) {
cfg.build.outDir = appPaths.resolve.capacitor('www')
}
return extendViteConfig(cfg, quasarConf, { isClient: true })
}
}
export const modeConfig = quasarCapacitorConfig