You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.8 KiB
TypeScript

2 months ago
import { ConfigEnv, defineConfig, loadEnv, UserConfig } from 'vite';
import basicSsl from '@vitejs/plugin-basic-ssl';
import Icons from 'unplugin-icons/vite';
import IconsResolver from 'unplugin-icons/resolver';
import Components from 'unplugin-vue-components/vite';
12 months ago
import createPlugins from './vite/plugins';
import path from 'path';
10 months ago
2 months ago
12 months ago
export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => {
const env = loadEnv(mode, process.cwd());
return {
// 部署生产环境和开发环境下的URL。
// 默认情况下vite 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
base: env.VITE_APP_CONTEXT_PATH,
resolve: {
alias: {
'~': path.resolve(__dirname, './'),
11 months ago
'@': path.resolve(__dirname, 'src')
12 months ago
},
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
},
// https://cn.vitejs.dev/config/#resolve-extensions
2 months ago
plugins: [createPlugins(env, command === 'build'), basicSsl(),
Components({
resolvers: [
IconsResolver({
compiler: 'vue3'
})
]
}),
Icons({
compiler: 'vue3'
})],
12 months ago
server: {
host: '0.0.0.0',
port: Number(env.VITE_APP_PORT),
2 months ago
// https: true,
12 months ago
open: true,
proxy: {
[env.VITE_APP_BASE_API]: {
2 months ago
// target: 'http://localhost:6080',
// target: 'https://frp-off.com:47543',
// target: 'http://192.168.100.102:6080',
// target: 'http://192.168.100.100:6080',
2 months ago
// target: 'http://1.13.177.47:6080',
target: 'http://192.168.0.15:6080',
12 months ago
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
10 months ago
},
'/dev-api2': {
target: 'http://localhost:6082',
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
},
'/dev-api3': {
target: 'http://localhost:6083',
changeOrigin: true,
ws: true,
2 months ago
secure: false,
rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
},
10 months ago
'/deva-api': {
target: `http://175.27.215.92/prod-api`,
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp('^' + '/deva-api'), '')
12 months ago
}
}
},
css: {
preprocessorOptions: {
scss: {
javascriptEnabled: true
}
},
postcss: {
plugins: [
{
postcssPlugin: 'internal:charset-removal',
AtRule: {
charset: (atRule) => {
if (atRule.name === 'charset') {
atRule.remove();
}
}
}
}
]
}
},
// 预编译
optimizeDeps: {
include: [
'vue',
'vue-router',
'pinia',
'axios',
'@vueuse/core',
'echarts',
'vue-i18n',
'@vueup/vue-quill',
'bpmn-js/lib/Viewer',
'bpmn-js/lib/Modeler.js',
'bpmn-js-properties-panel',
'min-dash',
'diagram-js/lib/navigation/movecanvas',
'diagram-js/lib/navigation/zoomscroll',
'bpmn-js/lib/features/palette/PaletteProvider',
'bpmn-js/lib/features/context-pad/ContextPadProvider',
'diagram-js/lib/draw/BaseRenderer',
'tiny-svg',
'image-conversion',
'element-plus/es/components/**/css'
]
}
};
});