You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/ux/vite.config.js

84 lines
2.2 KiB

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: 'src/css/quasar.variables.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
}
}
}
})