vite.config.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { defineConfig, loadEnv } from "vite";
  2. import vue from "@vitejs/plugin-vue";
  3. import path from "path";
  4. import Components from "unplugin-vue-components/vite";
  5. import { VantResolver } from "unplugin-vue-components/resolvers";
  6. import VueSetupExtend from 'vite-plugin-vue-setup-extend'
  7. import {createSvgIconsPlugin} from 'vite-plugin-svg-icons'
  8. import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'
  9. import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill'
  10. import rollupNodePolyFill from 'rollup-plugin-node-polyfills'
  11. // https://vitejs.dev/config/
  12. export default ({ mode }) =>
  13. defineConfig({
  14. base: loadEnv(mode, process.cwd()).VITE_APP_BASE_URL, // 若服务器不是将该项目放在根目录的则 需要此设置 和服务器上同名
  15. plugins: [
  16. vue(),
  17. Components({
  18. resolvers: [VantResolver()],
  19. }),
  20. VueSetupExtend(),
  21. createSvgIconsPlugin({
  22. // 指定需要缓存的图标文件夹
  23. iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
  24. // 指定symbolId格式
  25. symbolId: '[name]',
  26. /**
  27. * 自定义插入位置
  28. * @default: body-last
  29. */
  30. // inject?: 'body-last' | 'body-first'
  31. /**
  32. * custom dom id
  33. * @default: __svg__icons__dom__
  34. */
  35. // customDomId: '__svg__icons__dom__'
  36. })
  37. ],
  38. css: {
  39. // css预处理器
  40. preprocessorOptions: {
  41. scss: {
  42. // 定义全局的scss变量
  43. // 给导入的路径最后加上 ;
  44. additionalData: `@import '@/assets/styles/var.scss';`,
  45. },
  46. },
  47. },
  48. resolve: {
  49. alias: {
  50. "@": path.resolve(__dirname, "./src"),
  51. stream: 'rollup-plugin-node-polyfills/polyfills/stream',
  52. buffer: 'rollup-plugin-node-polyfills/polyfills/buffer-es6',
  53. }
  54. },
  55. optimizeDeps: {
  56. esbuildOptions: {
  57. // Enable esbuild polyfill plugins
  58. plugins: [
  59. NodeModulesPolyfillPlugin()
  60. ]
  61. }
  62. },
  63. build: {
  64. outDir: loadEnv(mode, process.cwd()).VITE_APP_OUTDIR,
  65. rollupOptions: {
  66. plugins: [
  67. // Enable rollup polyfills plugin used during production bundling
  68. rollupNodePolyFill()
  69. ]
  70. }
  71. },
  72. server:{
  73. host:true
  74. }
  75. });