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

171 lines
5.0 KiB

import { fileURLToPath, URL } from 'node:url'
import { defineConfig, UserConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import vueJsx from '@vitejs/plugin-vue-jsx'
// import vueDevTools from 'vite-plugin-vue-devtools'
import allEnv from "./env.config";
export default defineConfig(env => {
const isProduction = env.mode === 'production';
const isBuild = env.command === 'build';
const mode = env.mode;
const envConfig = allEnv[mode];
const config: UserConfig = {
plugins: [
vue(),
// vueJsx(),
// vueDevTools(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
server: {
host: envConfig.serverHost,
port: envConfig.serverPort,
open: false,
proxy: {
'^/api/.*': {
target: envConfig.lccApiTarget,
changeOrigin: false,
},
},
},
preview: {
host: envConfig.serverHost,
port: envConfig.serverPort,
strictPort: true,
allowedHosts: true,
},
// optimizeDeps: {
// include: [
// 'lodash', 'axios', 'three', 'dat.gui',
// 'element-plus', 'ag-grid-community', 'ag-grid-enterprise', 'ag-grid-vue3',
// 'codemirror'
// ]
// },
build:{
target: 'modules',
outDir: "./dist",
minify: true,
sourcemap: true,
rollupOptions: {
// output: {
// chunkFileNames: (chunkInfo) => {
// return 'js/[name]-[hash].js';
// },
// entryFileNames: 'js/yvan-lcc.mjs',
// assetFileNames: 'js/yvan-lcc[extname]',
// name: "yvan-lcc",
// exports: 'named',
// globals: {
// vue: "Vue",
// },
// manualChunks: function (id) {
// if (id.includes("/yvan-lcc/src")) {
// return;
// }
// if (id.includes('diagram-js')) {
// return 'diagram-js';
// }
// // 无法切包
// // if (id.includes('/monaco-editor/')) {
// // return 'monaco-editor';
// // }
// // 无法切包
// // if (id.includes('/codemirror/')) {
// // return 'codemirror';
// // }
// // if (id.includes('/@codemirror/')) {
// // return 'codemirror2';
// // }
// if (id.includes('/lodash/') || id.includes('/lodash-es/')) {
// return 'lodash';
// }
// if (id.includes('/vant/')) {
// return 'vant';
// }
// if (id.includes('/zrender/')) {
// return 'zrender';
// }
// if (id.includes('/@vicons/ionicons5/')) {
// return 'ionicons5';
// }
// if (id.includes('/@vicons/antd/')) {
// return 'antd-icons';
// }
// if (id.includes('/@vicons/fa/')) {
// return 'fa-icons';
// }
// if (id.includes('/dayjs/')) {
// return 'dayjs';
// }
// if (id.includes('/@vueuse/')) {
// return 'vueuse';
// }
// if (id.includes('/axios/')) {
// return 'axios';
// }
// if (id.includes('/crypto-js/')) {
// return 'crypto-js';
// }
// if (id.includes('/@interactjs/')) {
// return 'interactjs';
// }
// if (id.includes('bpmn-js')) {
// return 'bpmn-js';
// }
// if (id.includes('/highlight.js/')) {
// return 'highlight';
// }
// if (id.includes('/echarts/')) {
// return 'echarts';
// }
// if (id.includes('/prismjs/')) {
// return 'prismjs';
// }
// if (id.includes('/jquery/')) {
// return 'jquery';
// }
// if (id.includes('/xlsx/')) {
// return 'xlsx';
// }
// if (id.includes('/vue3-markdown-it/')) {
// return 'vue3-markdown-it';
// }
// if (id.includes('/element-plus/') || id.includes('/@element-plus/')) {
// return 'element-plus';
// }
// console.log("id", id)
// },
// },
external: [
// 'vue',
// 'vue-router',
// 'lodash',
// 'element-plus',
// "codemirror",
// 'ag-grid-community',
// 'ag-grid-enterprise',
// 'ag-grid-vue3',
// 'localforage',
// 'json5',
// "vant",
// "axios",
// "echarts",
// "split.js",
// "pinia",
// "vue3-menus",
// "resize-observer-polyfill",
// "@element-plus/icons-vue",
// "@vicons/fa",
// "@vicons/utils",
// "axios"
],
},
}
};
return config;
})