listmonk/frontend/vite.config.js
Kailash Nadh af8b420d53 Refactor and upgrade the frontend vue code to work with vite instead of webpack.
- Upgrade eslint and fix a massive number (~2500!) of linting errors from new rules.
- Upgrade babel core frontend dev dependency.
- Upgrade UI lib and other frontend deps.
- Refactor the Vue admin app to use `vite` instead of `webpack`.
- This was an extremely tedious and painstaking, trial-and-error
  alchemy job. My disdain for the Javascript "ecosystem" grows.
- Re-add custom admin appearance endpoints to the refactored Vue page.
- Remove obsolete vue-cli config.
- Re-auto-format all .vue files again to work with new linters.
2023-12-25 19:26:08 +05:30

38 lines
948 B
JavaScript
Vendored

import vue from '@vitejs/plugin-vue2';
import { defineConfig, loadEnv } from 'vite';
const path = require('path');
// https://vitejs.dev/config/
export default defineConfig(({ _, mode }) => {
const env = loadEnv(mode, process.cwd(), '');
return {
plugins: [vue()],
base: '/admin',
mode,
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
bulma: require.resolve('bulma/bulma.sass'),
},
},
build: {
assetsDir: 'static',
},
server: {
port: env.LISTMONK_FRONTEND_PORT || 8080,
proxy: {
'^/$': {
target: env.LISTMONK_API_URL || 'http://127.0.0.1:9000',
},
'^/(api|webhooks|subscription|public|health)': {
target: env.LISTMONK_API_URL || 'http://127.0.0.1:9000',
},
'^/(admin\/custom\.(css|js))': {
target: env.LISTMONK_API_URL || 'http://127.0.0.1:9000',
},
},
},
};
});