|
|
|
import { defineConfig, loadEnv } from "vite";
|
|
|
|
import vue from "@vitejs/plugin-vue";
|
|
|
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
|
|
|
import path from "path";
|
|
|
|
import { viteStaticCopy } from "vite-plugin-static-copy";
|
|
|
|
import AutoImport from "unplugin-auto-import/vite";
|
|
|
|
import Components from "unplugin-vue-components/vite";
|
|
|
|
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
|
|
|
|
import gzipPlugin from "rollup-plugin-gzip";
|
|
|
|
// import eslintPlugin from 'vite-plugin-eslint';
|
|
|
|
|
|
|
|
const pathSrc = path.resolve(__dirname, "src");
|
|
|
|
const root = process.cwd();
|
|
|
|
// 开发
|
|
|
|
const apiTarget = "http://gateway.product.dev.com:30115/";
|
|
|
|
const apiSluiceTarget = "http://shuili-admin.product.dev.com:30115";
|
|
|
|
// const apiTarget = 'http://sy.datametatech.com:60006/';
|
|
|
|
// https://vitejs.dev/config/
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
|
|
const env = loadEnv(mode, path.resolve(root, "./env"));
|
|
|
|
return {
|
|
|
|
envDir: "./env",
|
|
|
|
base: env.VITE_BASE_URL,
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
"@": pathSrc,
|
|
|
|
"~/": `${pathSrc}/`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
css: {
|
|
|
|
preprocessorOptions: {
|
|
|
|
scss: {
|
|
|
|
additionalData: `@use "~/theme/element/index.scss" as *;`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
plugins: [
|
|
|
|
vue({
|
|
|
|
template: {
|
|
|
|
compilerOptions: {
|
|
|
|
isCustomElement: (tag) => tag.startsWith("iconpark-"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}),
|
|
|
|
vueJsx(),
|
|
|
|
AutoImport({
|
|
|
|
resolvers: [ElementPlusResolver()],
|
|
|
|
}),
|
|
|
|
Components({
|
|
|
|
// allow auto load markdown components under `./src/components/`
|
|
|
|
extensions: ["vue", "md"],
|
|
|
|
// allow auto import and register components used in markdown
|
|
|
|
include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
|
|
|
|
resolvers: [
|
|
|
|
ElementPlusResolver({
|
|
|
|
importStyle: "sass",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
dts: "src/components.d.ts",
|
|
|
|
}),
|
|
|
|
viteStaticCopy({
|
|
|
|
targets: [
|
|
|
|
{
|
|
|
|
src: "./node_modules/sy-cesium-sdk/dist/resources",
|
|
|
|
dest: mode === "development" ? "/sgcyy-slgcyxgl/" : "",
|
|
|
|
},
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
server: {
|
|
|
|
host: "0.0.0.0",
|
|
|
|
port: 6050,
|
|
|
|
proxy: {
|
|
|
|
"/proxy": {
|
|
|
|
target: apiTarget,
|
|
|
|
changeOrigin: true,
|
|
|
|
},
|
|
|
|
"/iserver": {
|
|
|
|
target: "http://172.16.34.41:8090",
|
|
|
|
changeOrigin: true,
|
|
|
|
},
|
|
|
|
"/api/iserver": {
|
|
|
|
target: "http://172.16.34.41:8090",
|
|
|
|
changeOrigin: true,
|
|
|
|
rewrite: (path) => path.replace(/^\/api\/iserver/, "/iserver"),
|
|
|
|
},
|
|
|
|
"/api/run": {
|
|
|
|
// target: "http://shuili.product.dev.com:30115/",
|
|
|
|
target: "http://172.16.34.80:18082",
|
|
|
|
changeOrigin: true,
|
|
|
|
rewrite: (path) => path.replace(/^\/api/, "/tianhui-admin-web"),
|
|
|
|
},
|
|
|
|
"/api": {
|
|
|
|
target: "http://shuili.product.dev.com:30115", // 'http://172.16.34.59:18083'
|
|
|
|
changeOrigin: true,
|
|
|
|
rewrite: (path) => path.replace(/^\/api/, "/tianhui-admin-web"),
|
|
|
|
},
|
|
|
|
"/geoserver": {
|
|
|
|
target: "http://172.16.32.77:8700",
|
|
|
|
changeOrigin: true,
|
|
|
|
},
|
|
|
|
"/mapserver": {
|
|
|
|
target: "http://172.16.34.71:8083/mapdata",
|
|
|
|
changeOrigin: true,
|
|
|
|
rewrite: (path) => path.replace(/^\/mapserver/, ""),
|
|
|
|
},
|
|
|
|
"/images": {
|
|
|
|
target: apiTarget,
|
|
|
|
changeOrigin: true,
|
|
|
|
},
|
|
|
|
"/objs": {
|
|
|
|
target: apiTarget,
|
|
|
|
changeOrigin: true,
|
|
|
|
// rewrite: (path) => path.replace(/^\/sy-mixengine-ui/, '')
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
build: {
|
|
|
|
rollupOptions: {
|
|
|
|
output: {
|
|
|
|
manualChunks: {
|
|
|
|
sycim: ["sy-cesium-sdk"],
|
|
|
|
vue: ["vue"],
|
|
|
|
},
|
|
|
|
},
|
|
|
|
plugins: [gzipPlugin()],
|
|
|
|
},
|
|
|
|
chunkSizeWarningLimit: 6000,
|
|
|
|
},
|
|
|
|
} as any;
|
|
|
|
});
|