Files
tehran_taj/apps/admin-panel/vite.config.ts
T
2026-09-15 17:06:27 +03:30

53 lines
1.7 KiB
TypeScript

import { fileURLToPath, URL } from 'node:url';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
// Ported from legacy henza_admin/vue.config.js.
// The legacy build switched publicPath/outputDir on NODE_ENV=='branch'; in Vite the
// equivalent switch is the --mode flag (`pnpm dev:branch` / `pnpm build:branch`),
// which src/utils/index.ts reads via import.meta.env.MODE.
export default defineConfig(({ mode }) => {
const isBranch = mode === 'branch';
// Dev keeps the legacy /admin/ prefix (localhost:5174/admin/auth/login).
// Production is served on a dedicated Dokploy domain, so the app lives at /.
const base = isBranch ? '/branch/' : mode === 'development' ? '/admin/' : '/';
return {
base,
plugins: [vue()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
css: {
preprocessorOptions: {
less: {
// Verbatim from legacy vue.config.js configureWebpack less-loader modifyVars.
modifyVars: {
'primary-color': '#1c2d56',
'secondary-color': '#836447',
'third-color': '#f5cb55',
'link-color': '#1DA57A',
'border-radius-base': '6px',
},
javascriptEnabled: true,
},
},
},
build: {
// legacy used dist/export for a shared-host path deploy. Dokploy copies
// this folder onto nginx's html root, so production must emit at dist/.
outDir: isBranch ? 'branchDist/export' : 'dist',
emptyOutDir: true,
sourcemap: false, // legacy: productionSourceMap: false
},
server: {
port: 5174,
proxy: {
'/api': 'http://localhost:3000',
},
},
};
});