|
|
import { defineConfig } from 'vite'
|
|
|
import { fileURLToPath, URL } from 'node:url'
|
|
|
import vue from '@vitejs/plugin-vue'
|
|
|
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
|
|
|
import commonjs from '@rollup/plugin-commonjs';
|
|
|
import legacy from '@vitejs/plugin-legacy';
|
|
|
|
|
|
const path = require('path');
|
|
|
export default defineConfig({
|
|
|
// 起个别名,在引用资源时,可以用‘@/资源路径’直接访问
|
|
|
resolve: {
|
|
|
// https://cn.vitejs.dev/config/#resolve-alias
|
|
|
alias: {
|
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
|
},
|
|
|
// https://cn.vitejs.dev/config/#resolve-extensions
|
|
|
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
|
|
|
},
|
|
|
plugins: [
|
|
|
commonjs(),
|
|
|
vue(),
|
|
|
legacy({
|
|
|
targets:["defaults","not IE 11"],
|
|
|
}),
|
|
|
createSvgIconsPlugin({
|
|
|
// 指定需要缓存的图标文件夹(路径为存放所有svg图标的文件夹不单个svg图标)
|
|
|
iconDirs: [path.resolve(process.cwd(), 'src/icons/svg')],
|
|
|
// 指定symbolId格式
|
|
|
symbolId: 'icon-[dir]-[name]'
|
|
|
})
|
|
|
],
|
|
|
optimizeDeps: {
|
|
|
include: ['@/components/vform/designer.umd.js'] //此处路径必须跟main.js中import路径完全一致!
|
|
|
},
|
|
|
build: {
|
|
|
sourcemap: false,
|
|
|
minify: 'terser',
|
|
|
chunkSizeWarningLimit: 2500,
|
|
|
emptyOutDir: true,
|
|
|
terserOptions: {
|
|
|
compress: {
|
|
|
drop_console: true,
|
|
|
drop_debugger: true
|
|
|
}
|
|
|
},
|
|
|
rollupOptions: {
|
|
|
output: {
|
|
|
manualChunks(id) {
|
|
|
if (id.includes('node_modules')) {
|
|
|
return id.toString().split('node_modules/')[1].split('/')[0].toString();
|
|
|
}
|
|
|
},
|
|
|
chunkFileNames: (chunkInfo) => {
|
|
|
const facadeModuleId = chunkInfo.facadeModuleId ? chunkInfo.facadeModuleId.split('/') : [];
|
|
|
const fileName = facadeModuleId[facadeModuleId.length - 2] || '[name]';
|
|
|
return `js/${fileName}/[name].[hash].js`;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
// 配置前端服务地址和端口
|
|
|
server: {
|
|
|
host: '0.0.0.0',
|
|
|
port: 3000,
|
|
|
// 是否开启 https
|
|
|
https: true,
|
|
|
proxy: {
|
|
|
'/security-api': {
|
|
|
// 后台地址
|
|
|
target: 'http://192.168.3.8:8002',
|
|
|
changeOrigin: true,
|
|
|
rewrite: path => path.replace(/^\/security-api/, '')
|
|
|
},
|
|
|
'/admin-api': {
|
|
|
// 后台地址
|
|
|
target: 'http://192.168.3.8:8003',
|
|
|
changeOrigin: true,
|
|
|
rewrite: path => path.replace(/^\/admin-api/, '')
|
|
|
},
|
|
|
'/plant-api': {
|
|
|
// 后台地址
|
|
|
target: 'https://192.168.3.8:8000',
|
|
|
changeOrigin: true,
|
|
|
secure: false,
|
|
|
rewrite: path => path.replace(/^\/plant-api/, '')
|
|
|
},
|
|
|
'/flow-api': {
|
|
|
target: 'http://192.168.3.8:8091',
|
|
|
changeOrigin: true,
|
|
|
rewrite: (p) => p.replace(/^\/flow-api/, '')
|
|
|
},
|
|
|
// '/wss-api': {
|
|
|
// target: 'wss://192.168.3.8:8000',
|
|
|
// secure: false,
|
|
|
// ws: true,
|
|
|
// rewrite: (p) => p.replace(/^\/wss-api/, '')
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
})
|