vite.config.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. host: '0.0.0.0', // 配置项目可以局域网访问
  42. proxy: {
  43. '/service': {
  44. target: 'https://v4-uat.4dkankan.com/',
  45. changeOrigin: true,
  46. rewrite: (path) => path.replace(/^\/api/, ''),
  47. },
  48. },
  49. },
  50. plugins: [
  51. vue(),
  52. WindiCSS(),
  53. // AutoImport({
  54. // resolvers: [AntDesignVueResolver()], // api
  55. // }),
  56. Components({
  57. resolvers: [
  58. VantResolver(),
  59. AntDesignVueResolver({
  60. importStyle: false, // css in js
  61. }),
  62. ],
  63. }),
  64. ],
  65. build: {
  66. minify: 'terser',
  67. terserOptions: {
  68. compress: {
  69. //生产环境时移除console
  70. drop_console: false,
  71. drop_debugger: true,
  72. },
  73. },
  74. },
  75. css: {
  76. preprocessorOptions: {
  77. // scss: {
  78. // // 配置 nutui 全局 scss 变量
  79. // additionalData: `@import "vant/lib/index.css";`,
  80. // scssOptions: {
  81. // modifyVars: {
  82. // 'primary-color': 'red',
  83. // 'link-color': '#ff0000',
  84. // 'border-radius-base': '2px',
  85. // },
  86. // javascriptEnabled: true,
  87. // },
  88. // },
  89. // css: {
  90. // // 配置 nutui 全局 scss 变量
  91. // additionalData: `@import "vant/lib/index.css";`,
  92. // },
  93. },
  94. },
  95. };
  96. }