|
|
|
import { defineConfig } from 'vite'
|
|
|
|
import vue from '@vitejs/plugin-vue'
|
|
|
|
import yaml from 'js-yaml'
|
|
|
|
import fs from 'node:fs'
|
|
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
|
|
|
|
|
|
|
|
// https://vitejs.dev/config/
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
|
|
const userConfig = mode === 'development' ? {
|
|
|
|
dev: { port: 3001, hmrClientPort: 3001 },
|
|
|
|
...yaml.load(fs.readFileSync(fileURLToPath(new URL('../config.yml', import.meta.url)), 'utf8'))
|
|
|
|
} : {}
|
|
|
|
|
|
|
|
return {
|
|
|
|
build: {
|
|
|
|
assetsDir: '_assets',
|
|
|
|
chunkSizeWarningLimit: 5000,
|
|
|
|
dynamicImportVarsOptions: {
|
|
|
|
warnOnError: true,
|
|
|
|
include: ['!/_blocks/**']
|
|
|
|
},
|
|
|
|
outDir: '../assets',
|
|
|
|
target: 'es2022',
|
|
|
|
...(mode === 'production') && {
|
|
|
|
rollupOptions: {
|
|
|
|
output: {
|
|
|
|
manualChunks (id) {
|
|
|
|
if (id.includes('lodash')) {
|
|
|
|
return 'lodash'
|
|
|
|
// } else if (id.includes('quasar')) {
|
|
|
|
// return 'quasar'
|
|
|
|
} else if (id.includes('pages/Admin')) {
|
|
|
|
return 'admin'
|
|
|
|
} else if (id.includes('pages/Profile')) {
|
|
|
|
return 'profile'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
optimizeDeps: {
|
|
|
|
include: [
|
|
|
|
'prosemirror-state',
|
|
|
|
'prosemirror-transform',
|
|
|
|
'prosemirror-model',
|
|
|
|
'prosemirror-view'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
plugins: [
|
|
|
|
vue({
|
|
|
|
template: { transformAssetUrls }
|
|
|
|
}),
|
|
|
|
quasar({
|
|
|
|
autoImportComponentCase: 'kebab',
|
|
|
|
sassVariables: '@/css/_theme.scss'
|
|
|
|
})
|
|
|
|
],
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
|
|
}
|
|
|
|
},
|
|
|
|
server: {
|
|
|
|
// https: true
|
|
|
|
open: false, // opens browser window automatically
|
|
|
|
port: userConfig.dev?.port,
|
|
|
|
proxy: ['_graphql', '_blocks', '_site', '_thumb', '_user'].reduce((result, key) => {
|
|
|
|
result[`/${key}`] = {
|
|
|
|
target: {
|
|
|
|
host: '127.0.0.1',
|
|
|
|
port: userConfig.port
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
}, {}),
|
|
|
|
hmr: {
|
|
|
|
clientPort: userConfig.dev?.hmrClientPort
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|