|
@@ -0,0 +1,114 @@
|
|
|
+
|
|
|
+let __unconfig_data;
|
|
|
+let __unconfig_stub = function (data = {}) { __unconfig_data = data };
|
|
|
+__unconfig_stub.default = (data = {}) => { __unconfig_data = data };
|
|
|
+import type { UserConfig, ConfigEnv } from 'vite';
|
|
|
+import pkg from './package.json';
|
|
|
+import dayjs from 'dayjs';
|
|
|
+import { loadEnv } from 'vite';
|
|
|
+import { resolve } from 'path';
|
|
|
+import { generateModifyVars } from './build/generate/generateModifyVars';
|
|
|
+import { createProxy } from './build/vite/proxy';
|
|
|
+import { wrapperEnv } from './build/utils';
|
|
|
+import { createVitePlugins } from './build/vite/plugin';
|
|
|
+import { OUTPUT_DIR } from './build/constant';
|
|
|
+import { include, exclude } from './build/vite/optimize';
|
|
|
+function pathResolve(dir: string) {
|
|
|
+ return resolve(process.cwd(), '.', dir);
|
|
|
+}
|
|
|
+
|
|
|
+const { dependencies, devDependencies, name, version } = pkg;
|
|
|
+const __APP_INFO__ = {
|
|
|
+ pkg: { dependencies, devDependencies, name, version },
|
|
|
+ lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
|
|
+};
|
|
|
+
|
|
|
+const __unconfig_default = ({ command, mode }: ConfigEnv): UserConfig => {
|
|
|
+ const root = process.cwd();
|
|
|
+
|
|
|
+ const env = loadEnv(mode, root);
|
|
|
+
|
|
|
+ // The boolean type read by loadEnv is a string. This function can be converted to boolean type
|
|
|
+ const viteEnv = wrapperEnv(env);
|
|
|
+
|
|
|
+ const { VITE_PORT, VITE_PUBLIC_PATH, VITE_PROXY, VITE_DROP_CONSOLE } = viteEnv;
|
|
|
+
|
|
|
+ const isBuild = command === 'build';
|
|
|
+
|
|
|
+ return {
|
|
|
+ base: VITE_PUBLIC_PATH,
|
|
|
+ root,
|
|
|
+ server: {
|
|
|
+ https: false,
|
|
|
+ // Listening on all local IPs
|
|
|
+ host: true,
|
|
|
+ port: VITE_PORT,
|
|
|
+ // Load proxy configuration from .env
|
|
|
+ proxy: createProxy(VITE_PROXY),
|
|
|
+ },
|
|
|
+ resolve: {
|
|
|
+ alias: [
|
|
|
+ {
|
|
|
+ find: 'vue-i18n',
|
|
|
+ replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
|
|
|
+ },
|
|
|
+ // /@/xxxx => src/xxxx
|
|
|
+ {
|
|
|
+ find: /\/@\//,
|
|
|
+ replacement: pathResolve('src') + '/',
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ find: /\/@bpmn\//,
|
|
|
+ replacement: pathResolve('src') + '/views/workflow/design/bpmn/',
|
|
|
+ },
|
|
|
+ // /#/xxxx => types/xxxx
|
|
|
+ {
|
|
|
+ find: /\/#\//,
|
|
|
+ replacement: pathResolve('types') + '/',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ esbuild: {
|
|
|
+ drop: VITE_DROP_CONSOLE ? ['console', 'debugger'] : [],
|
|
|
+ },
|
|
|
+ build: {
|
|
|
+ target: 'es2015',
|
|
|
+ cssTarget: 'chrome80',
|
|
|
+ outDir: OUTPUT_DIR,
|
|
|
+ // minify: 'terser',
|
|
|
+ /**
|
|
|
+ * 当 minify=“minify:'terser'” 解开注释
|
|
|
+ * Uncomment when minify="minify:'terser'"
|
|
|
+ */
|
|
|
+ // terserOptions: {
|
|
|
+ // compress: {
|
|
|
+ // keep_infinity: true,
|
|
|
+ // drop_console: VITE_DROP_CONSOLE,
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // Turning off brotliSize display can slightly reduce packaging time
|
|
|
+ reportCompressedSize: false,
|
|
|
+ chunkSizeWarningLimit: 2000,
|
|
|
+ },
|
|
|
+ define: {
|
|
|
+ __APP_INFO__: JSON.stringify(__APP_INFO__),
|
|
|
+ },
|
|
|
+
|
|
|
+ css: {
|
|
|
+ preprocessorOptions: {
|
|
|
+ less: {
|
|
|
+ modifyVars: generateModifyVars(),
|
|
|
+ javascriptEnabled: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+
|
|
|
+ // The vite plugin used by the project. The quantity is large, so it is separately extracted and managed
|
|
|
+ plugins: createVitePlugins(viteEnv, isBuild),
|
|
|
+
|
|
|
+ optimizeDeps: { include, exclude },
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+if (typeof __unconfig_default === "function") __unconfig_default(...[{"command":"serve","mode":"development"}]);export default __unconfig_data;
|