vite.config.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // import { createVitePlugins } from './build/vite/plugins';
  2. import { resolve } from 'path';
  3. import { ConfigEnv, UserConfig } from 'vite';
  4. // import { wrapperEnv } from './build/utils';
  5. import WindiCSS from 'vite-plugin-windicss';
  6. import AutoImport from 'unplugin-auto-import/vite';
  7. import Components from 'unplugin-vue-components/vite';
  8. import { VantResolver, AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
  9. import vue from '@vitejs/plugin-vue';
  10. const pathResolve = (dir: string) => {
  11. return resolve(process.cwd(), '.', dir);
  12. };
  13. // https://vitejs.dev/config/
  14. export default function (_: ConfigEnv): UserConfig {
  15. // const isProduction = command === 'build';
  16. const root = process.cwd();
  17. // const env = loadEnv(mode, root);
  18. // const viteEnv = wrapperEnv(env);
  19. return {
  20. base: './',
  21. root,
  22. resolve: {
  23. alias: [
  24. {
  25. find: 'vue-i18n',
  26. replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
  27. },
  28. // /@/xxxx => src/xxxx
  29. {
  30. find: /\/@\//,
  31. replacement: pathResolve('src') + '/',
  32. },
  33. // /#/xxxx => types/xxxx
  34. {
  35. find: /\/#\//,
  36. replacement: pathResolve('types') + '/',
  37. },
  38. ],
  39. },
  40. server: {
  41. proxy: {
  42. '/service': {
  43. target: 'https://v4-uat.4dkankan.com/',
  44. changeOrigin: true,
  45. rewrite: (path) => path.replace(/^\/api/, ''),
  46. },
  47. },
  48. },
  49. plugins: [
  50. vue(),
  51. WindiCSS(),
  52. // AutoImport({
  53. // resolvers: [AntDesignVueResolver()], // api
  54. // }),
  55. Components({
  56. resolvers: [
  57. VantResolver(),
  58. AntDesignVueResolver({
  59. importStyle: false, // css in js
  60. }),
  61. ],
  62. }),
  63. ],
  64. build: {
  65. minify: 'terser',
  66. terserOptions: {
  67. compress: {
  68. //生产环境时移除console
  69. drop_console: false,
  70. drop_debugger: true,
  71. },
  72. },
  73. },
  74. css: {
  75. preprocessorOptions: {
  76. // scss: {
  77. // // 配置 nutui 全局 scss 变量
  78. // additionalData: `@import "vant/lib/index.css";`,
  79. // scssOptions: {
  80. // modifyVars: {
  81. // 'primary-color': 'red',
  82. // 'link-color': '#ff0000',
  83. // 'border-radius-base': '2px',
  84. // },
  85. // javascriptEnabled: true,
  86. // },
  87. // },
  88. // css: {
  89. // // 配置 nutui 全局 scss 变量
  90. // additionalData: `@import "vant/lib/index.css";`,
  91. // },
  92. },
  93. },
  94. };
  95. }