/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { UserConfig, ConfigEnv } from "vite"; import vue from "@vitejs/plugin-vue"; import { loadEnv } from "vite"; import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; import monacoEditorPlugin from "vite-plugin-monaco-editor"; import vueJsx from "@vitejs/plugin-vue-jsx"; import path from "path"; const OUTPUT_DIR = "dist"; // https://vitejs.dev/config/ export default ({ command, mode }: ConfigEnv): UserConfig => { return { plugins: [ vue(), vueJsx(), monacoEditorPlugin({}), AutoImport({ imports: ["vue"], resolvers: [ElementPlusResolver()], dts: "./src/types/auto-imports.d.ts", }), Components({ resolvers: [ElementPlusResolver()], dts: "./src/types/components.d.ts", }), ], resolve: { extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"], alias: { "@": path.resolve(__dirname, "./src"), "vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js", }, preserveSymlinks: true, }, server: { host: true, proxy: { "/graphql": { target: `${ loadEnv(mode, process.cwd()).VITE_SW_PROXY_TARGET || "http://127.0.0.1:12800" }`, changeOrigin: true, }, }, }, build: { target: "es2015", cssTarget: "chrome80", outDir: OUTPUT_DIR, chunkSizeWarningLimit: 2000, }, }; };