49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
import { fileURLToPath, URL } from 'node:url'
|
|
import { defineConfig } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import VueRouter from 'vue-router/vite'
|
|
|
|
export default defineConfig(({ mode }) => ({
|
|
plugins: [
|
|
VueRouter({
|
|
routesFolder: 'vue/routes',
|
|
importMode: 'sync',
|
|
}),
|
|
vue(),
|
|
],
|
|
base: './',
|
|
server: {
|
|
port: 5173,
|
|
strictPort: true,
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./vue', import.meta.url))
|
|
}
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
emptyOutDir: true,
|
|
rolldownOptions: {
|
|
input: { app: './vue/main.js' },
|
|
output: {
|
|
entryFileNames: 'app.js',
|
|
manualChunks: undefined,
|
|
assetFileNames: (asset) => {
|
|
const name = asset.names?.[0] ?? '';
|
|
if (name.endsWith('.css')) {
|
|
return 'assets/app.css';
|
|
}
|
|
return 'assets/[name]-[hash][extname]';
|
|
},
|
|
}
|
|
}
|
|
},
|
|
define: {
|
|
__VUE_PROD_DEVTOOLS__: mode === 'development' ? 'true' : 'false'
|
|
},
|
|
esbuild: {
|
|
drop: mode === 'development' ? [] : ['console', 'debugger']
|
|
}
|
|
}))
|