vite.config.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import path from "path";
  2. import { UserConfigExport, ConfigEnv,loadEnv } from "vite";
  3. import vueJsx from "@vitejs/plugin-vue-jsx";
  4. import vue from "@vitejs/plugin-vue";
  5. import svgLoader from "vite-svg-loader";
  6. import Components from "unplugin-vue-components/vite";
  7. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  8. import ElementPlus from "unplugin-element-plus/vite";
  9. import { LOGIN_URL,BASE_URL} from "./src/utils/constant"
  10. import styleImport from "vite-plugin-style-import";
  11. const getEnvFn = (mode, target) => {
  12. return loadEnv(mode, process.cwd())[target];
  13. };
  14. /**
  15. * @type {import('vite').UserConfig}
  16. * @link {https://vitejs.cn/config/}
  17. */
  18. export default ({ command, mode }: ConfigEnv): UserConfigExport => {
  19. return {
  20. root: process.cwd(),
  21. base: "./",
  22. server: {
  23. host: "0.0.0.0",
  24. open: true,
  25. port: 8002,
  26. // strictPort: true,
  27. https: false,
  28. force: true,
  29. proxy: {
  30. "/api": {
  31. // target: "http://sqpcbg.xt.wenhq.top:8083/",
  32. target:(getEnvFn(mode,"VITE_API_SERVER") as string)+'/YJZH-SQ/api',
  33. changeOrigin: true,
  34. rewrite: (path) => path.replace(/^\/api/, ''),
  35. },
  36. },
  37. },
  38. resolve: {
  39. alias: {
  40. "@": path.resolve(__dirname, "./src"),
  41. },
  42. },
  43. css: {
  44. modules: {
  45. localsConvention: "camelCase", // 默认只支持驼峰,修改为同事支持横线和驼峰
  46. },
  47. preprocessorOptions: {
  48. scss: {
  49. /**
  50. * TODO:// 目前按需加载时修改主题色会报错
  51. * 官方修复后在进行按需加载
  52. * @link {https://github.com/element-plus/element-plus/issues/2724}
  53. *
  54. * */
  55. // additionalData: `@use "@/styles/element/index.scss" as *;`,
  56. },
  57. // scss: { additionalData: `@import "@/styles/vars.scss";` },
  58. // less: {
  59. // javascriptEnabled: true,
  60. // additionalData: `@import "@/styles/default.less";`,
  61. // },
  62. },
  63. },
  64. plugins: [
  65. vue(),
  66. vueJsx({
  67. // options are passed on to @vue/babel-plugin-jsx
  68. }),
  69. svgLoader(),
  70. // ElementPlus({ useSource: true }),
  71. // styleImport({
  72. // libs: [
  73. // {
  74. // libraryName: "vant",
  75. // esModule: true,
  76. // resolveStyle: (name) => `vant/es/${name}/style`,
  77. // },
  78. // ],
  79. // }),
  80. ],
  81. };
  82. };