64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
// @ts-check
|
|
import { defineConfig } from 'astro/config';
|
|
import starlight from '@astrojs/starlight';
|
|
import path from 'path';
|
|
import react from '@astrojs/react';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import pkgs from './package.json';
|
|
import dotenv from 'dotenv';
|
|
|
|
const env = dotenv.config().parsed || {};
|
|
const isDev = env.NODE_ENV === 'development' || process.env.NODE_ENV === 'development';
|
|
const basename = isDev ? '/' : pkgs?.basename || '/';
|
|
|
|
let target = env.VITE_API_URL || process.env.API_URL || 'http://localhost:51515';
|
|
const apiProxy = { target: target, changeOrigin: true, ws: true, rewriteWsOrigin: true, secure: false, cookieDomainRewrite: 'localhost' };
|
|
let proxy = {
|
|
'/root/': apiProxy,
|
|
'/api': apiProxy,
|
|
'/client': apiProxy,
|
|
};
|
|
|
|
// https://astro.build/config
|
|
export default defineConfig({
|
|
base: basename,
|
|
integrations: [
|
|
starlight({
|
|
title: 'Note',
|
|
social: [],
|
|
sidebar: [
|
|
{
|
|
label: 'Guides',
|
|
items: [
|
|
// Each item here is one entry in the navigation menu.
|
|
{ label: 'Example Guide', slug: 'guides/example' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Reference',
|
|
autogenerate: { directory: 'reference' },
|
|
},
|
|
],
|
|
customCss: [
|
|
'./src/styles/global.css',
|
|
],
|
|
}),
|
|
react(), //
|
|
],
|
|
server: {
|
|
port: 7008,
|
|
host: '0.0.0.0',
|
|
allowedHosts: true,
|
|
},
|
|
vite: {
|
|
// @ts-ignore
|
|
plugins: [tailwindcss()],
|
|
define: {
|
|
BASE_NAME: JSON.stringify(basename || ''),
|
|
},
|
|
server: {
|
|
proxy,
|
|
},
|
|
},
|
|
});
|