vite.config.mts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { resolve } from "path";
  2. import { defineConfig, loadEnv } from "vite";
  3. import Components from "unplugin-vue-components/vite";
  4. import { AntDesignVueResolver } from "unplugin-vue-components/resolvers";
  5. import vue from "@vitejs/plugin-vue";
  6. import vueSetupExtend from "unplugin-vue-setup-extend-plus/vite";
  7. import vueJsx from "@vitejs/plugin-vue-jsx";
  8. import UnoCSS from "unocss/vite";
  9. import antdvNames from "./antdvNames";
  10. const root = resolve(__dirname, "src/render");
  11. const outDir = resolve(__dirname, "dist/");
  12. export default defineConfig((configEnv) => {
  13. const viteEnv = loadEnv(configEnv.mode, process.cwd());
  14. const processEnvValues = {
  15. "process.env": Object.entries(viteEnv).reduce((prev, [key, val]) => {
  16. return {
  17. ...prev,
  18. [key]: val,
  19. };
  20. }, {}),
  21. };
  22. return {
  23. root,
  24. base: "./",
  25. // publicDir: outDir,
  26. build: {
  27. outDir,
  28. },
  29. resolve: {
  30. alias: {
  31. "@": root,
  32. qs: "rollup-plugin-node-polyfills/polyfills/qs",
  33. },
  34. extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
  35. },
  36. css: {
  37. preprocessorOptions: {
  38. less: {
  39. javascriptEnabled: true,
  40. additionalData: `@import "${resolve(root, "styles/color.less")}";`,
  41. },
  42. },
  43. },
  44. define: { ...processEnvValues },
  45. plugins: [
  46. vue(),
  47. vueJsx(),
  48. vueSetupExtend(),
  49. UnoCSS(),
  50. Components({
  51. resolvers: [
  52. (componentName) => {
  53. if (componentName?.startsWith("Qm"))
  54. return { name: componentName.slice(0), from: "@qmth/ui" };
  55. },
  56. // AntDesignVueResolver({
  57. // importStyle: false,
  58. // }),
  59. (componentName) => {
  60. if (componentName?.startsWith("A")) {
  61. if (antdvNames.includes(componentName.slice(1))) {
  62. return {
  63. name: componentName.slice(1),
  64. from: "@qmth/ui",
  65. };
  66. }
  67. }
  68. },
  69. ],
  70. }),
  71. ],
  72. server: {
  73. host: "127.0.0.1",
  74. port: 8090,
  75. proxy: {
  76. "/api": {
  77. target: viteEnv.VITE_APP_PROXY_URL,
  78. changeOrigin: true,
  79. },
  80. },
  81. },
  82. };
  83. });