vite.config.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import { resolve } from 'path'
  4. // vant插件
  5. import Components from 'unplugin-vue-components/vite'
  6. import { VantResolver } from 'unplugin-vue-components/resolvers'
  7. // 引入vite兼容浏览器插件
  8. import legacy from '@vitejs/plugin-legacy'
  9. function pathResolve(dir) {
  10. return resolve(__dirname, '.', dir)
  11. }
  12. export default defineConfig({
  13. base: './',
  14. plugins: [
  15. vue(),
  16. Components({
  17. resolvers: [VantResolver()]
  18. }),
  19. // vite兼容低版本浏览器 如UC浏览器 内核55
  20. legacy({
  21. targets: ['chrome 50', 'ie >= 11'],
  22. additionalLegacyPolyfills: ['regenerator-runtime/runtime'], // regenerator-runtime/runtime @dian/polyfill
  23. renderLegacyChunks: true,
  24. polyfills: [
  25. 'es.symbol',
  26. 'es.array.filter',
  27. 'es.promise',
  28. 'es.promise.finally',
  29. 'es/map',
  30. 'es/set',
  31. 'es.array.for-each',
  32. 'es.object.define-properties',
  33. 'es.object.define-property',
  34. 'es.object.get-own-property-descriptor',
  35. 'es.object.get-own-property-descriptors',
  36. 'es.object.keys',
  37. 'es.object.to-string',
  38. 'web.dom-collections.for-each',
  39. 'esnext.global-this',
  40. 'esnext.string.match-all'
  41. // // 这个无法处理
  42. // 'es.string.replace-all'
  43. ],
  44. // 在polyfills外可以执行
  45. modernPolyfills: ['es.string.replace-all']
  46. })
  47. ],
  48. resolve: {
  49. alias: {
  50. '@': pathResolve('src')
  51. }
  52. },
  53. server: {
  54. host: '0.0.0.0',
  55. cors: true,
  56. open: true,
  57. proxy: {
  58. // 跨域前缀写法
  59. '/api': {
  60. target: 'http://192.168.99.223:3000',
  61. changeOrigin: true,
  62. rewrite: (path) => path.replace(/^\/api/, '')
  63. }
  64. }
  65. }
  66. })