152 lines
4.0 KiB
TypeScript
152 lines
4.0 KiB
TypeScript
import { resolve } from 'path';
|
|
import { defineConfig } from 'vite';
|
|
import vue from '@vitejs/plugin-vue';
|
|
import vueJsx from '@vitejs/plugin-vue-jsx';
|
|
import svgLoader from 'vite-svg-loader';
|
|
import AutoImport from 'unplugin-auto-import/vite';
|
|
import Components from 'unplugin-vue-components/vite';
|
|
import UnoCSS from 'unocss/vite';
|
|
import configArcoStyleImportPlugin from './config/plugin/arcoStyleImport';
|
|
|
|
export default defineConfig({
|
|
server: {
|
|
open: true,
|
|
fs: {
|
|
strict: true,
|
|
},
|
|
historyApiFallback: true,
|
|
proxy: {
|
|
'/api/trackApi': {
|
|
target: 'http://43.139.210.35:8889',
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api\/trackApi/, ''),
|
|
|
|
configure: (proxy, options) => {
|
|
proxy.on('error', (err, req, res) => {
|
|
console.log('proxy error', err);
|
|
});
|
|
proxy.on('proxyReq', (proxyReq, req, res) => {
|
|
console.log('Sending Request to the Target:', req.method, req.url);
|
|
});
|
|
proxy.on('proxyRes', (proxyRes, req, res) => {
|
|
console.log(
|
|
'Received Response from the Target:',
|
|
proxyRes.statusCode,
|
|
req.url
|
|
);
|
|
});
|
|
},
|
|
},
|
|
'/api': {
|
|
target: 'http://43.139.210.35:8888',
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api/, ''),
|
|
timeout: 30000,
|
|
proxyTimeout: 30000,
|
|
configure: (proxy, options) => {
|
|
// 保持现有配置...
|
|
proxy.on('proxyReq', (proxyReq, req, res) => {
|
|
console.log('[8888] Sending Request:', req.method, req.url);
|
|
console.log('[8888] Proxy Target:', proxyReq.path);
|
|
});
|
|
proxy.on('proxyRes', (proxyRes, req, res) => {
|
|
console.log(
|
|
'[8888] Received Response:',
|
|
proxyRes.statusCode,
|
|
req.url
|
|
);
|
|
});
|
|
},
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
// eslint({
|
|
// cache: false,
|
|
// include: ['src/**/*.ts', 'src/**/*.tsx', 'src/**/*.vue'],
|
|
// exclude: ['node_modules'],
|
|
// }),
|
|
vue(),
|
|
vueJsx(),
|
|
svgLoader({ svgoConfig: {} }),
|
|
configArcoStyleImportPlugin(),
|
|
UnoCSS(),
|
|
|
|
AutoImport({
|
|
imports: ['vue', 'vue-router', 'vue-i18n', 'pinia', '@vueuse/core'],
|
|
dts: 'src/auto-imports.d.ts',
|
|
dirs: ['src/composables', 'src/store'],
|
|
vueTemplate: true,
|
|
eslintrc: {
|
|
enabled: true,
|
|
},
|
|
}),
|
|
Components({
|
|
extensions: ['vue'],
|
|
include: [/\.vue$/, /\.vue\?vue/],
|
|
dts: 'src/components.d.ts',
|
|
dirs: ['src/components'],
|
|
resolvers: [],
|
|
// directoryAsNamespace: true,
|
|
}),
|
|
],
|
|
resolve: {
|
|
alias: [
|
|
{
|
|
find: '@',
|
|
replacement: resolve(__dirname, './src'),
|
|
},
|
|
{
|
|
find: 'assets',
|
|
replacement: resolve(__dirname, './src/assets'),
|
|
},
|
|
{
|
|
find: 'vue-i18n',
|
|
replacement: 'vue-i18n/dist/vue-i18n.cjs.js', // Resolve the i18n warning issue
|
|
},
|
|
{
|
|
find: 'vue',
|
|
replacement: 'vue/dist/vue.esm-bundler.js', // compile template
|
|
},
|
|
{
|
|
find: 'xe-utils',
|
|
replacement: resolve(
|
|
__dirname,
|
|
'./node_modules/.pnpm/xe-utils@3.7.5/node_modules/xe-utils'
|
|
), // Add xe-utils alias
|
|
},
|
|
],
|
|
extensions: ['.ts', '.js'],
|
|
},
|
|
define: {
|
|
'process.env': {},
|
|
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false',
|
|
__VUE_OPTIONS_API__: 'true',
|
|
__VUE_PROD_DEVTOOLS__: 'false',
|
|
},
|
|
optimizeDeps: {
|
|
include: ['monaco-editor'],
|
|
},
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
'monaco-editor': ['monaco-editor'],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
css: {
|
|
preprocessorOptions: {
|
|
less: {
|
|
modifyVars: {
|
|
hack: `true; @import (reference) "${resolve(
|
|
'./src/assets/style/breakpoint.less'
|
|
)}";`,
|
|
},
|
|
javascriptEnabled: true,
|
|
},
|
|
},
|
|
},
|
|
});
|