export default()

in vite.config.ts [32:111]


export default ({ mode }: ConfigEnv): UserConfig => {
  const { VITE_SW_PROXY_TARGET } = loadEnv(mode, process.cwd());
  return {
    plugins: [
      vue(),
      vueJsx(),
      monacoEditorPlugin({}),
      AutoImport({
        resolvers: [ElementPlusResolver()],
        dts: path.resolve(__dirname, "./src/types/auto-imports.d.ts"),
      }),
      Components({
        resolvers: [ElementPlusResolver()],
        dts: path.resolve(__dirname, "./src/types/components.d.ts"),
      }),
      createSvgIconsPlugin({
        // Specify the icon folder to be cached
        iconDirs: [path.resolve(__dirname, "./src/assets/icons")],
        // Specify symbolId format
        symbolId: "[name]",
      }),
    ],
    resolve: {
      extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
      alias: {
        "@": pathSrc,
        "vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js",
      },
      preserveSymlinks: true,
    },
    css: {
      preprocessorOptions: {
        //define global scss variable
        scss: {
          additionalData: `@use "@/styles/theme.scss" as *;`,
        },
      },
    },
    server: {
      host: true,
      port: 3000,
      proxy: {
        "/graphql": {
          target: `${VITE_SW_PROXY_TARGET || "http://127.0.0.1:12800"}`,
          changeOrigin: true,
        },
      },
    },
    build: {
      target: "es2015",
      outDir: OUTPUT_DIR,
      manifest: false,
      sourcemap: false,
      chunkSizeWarningLimit: 2000,
      rollupOptions: {
        output: {
          chunkFileNames: "static/js/[name]-[hash].js",
          entryFileNames: "static/js/[name]-[hash].js",
          assetFileNames: "static/[ext]/[name]-[hash].[ext]",
          manualChunks(id) {
            if (id.includes("node_modules")) {
              if (id.includes("echarts")) {
                return "echarts";
              }
              if (id.includes("element-plus")) {
                return "element-plus";
              }
              if (id.includes("monaco-editor")) {
                return "monaco-editor";
              }
              if (id.includes("d3")) {
                return "d3";
              }
            }
          },
        },
      },
    },
  };
};