vite.config.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import qiankun from 'vite-plugin-qiankun'
  5. const SUB_APP_NAME = 'web-app'
  6. // qiankun 子应用:借助 vite-plugin-qiankun 暴露微前端生命周期
  7. export default defineConfig(({ mode }) => {
  8. const isProd = mode === 'production'
  9. return {
  10. // 生产环境部署在 /web/ 子路径下;开发环境用根路径便于独立调试
  11. base: isProd ? '/web/' : '/',
  12. plugins: [
  13. vue(),
  14. qiankun(SUB_APP_NAME, { useDevMode: !isProd }),
  15. ],
  16. resolve: {
  17. alias: {
  18. '@': fileURLToPath(new URL('./src', import.meta.url)),
  19. },
  20. },
  21. server: {
  22. host: '0.0.0.0',
  23. port: 7100,
  24. strictPort: true,
  25. cors: true,
  26. origin: 'http://localhost:7100',
  27. headers: {
  28. // qiankun 通过 fetch 拉取子应用资源,须允许跨域
  29. 'Access-Control-Allow-Origin': '*',
  30. },
  31. },
  32. build: {
  33. target: 'es2015',
  34. // 每个子应用产出去独立的 chunk,便于 qiankun 沙箱加载
  35. rollupOptions: {
  36. output: {
  37. chunkFileNames: 'assets/[name]-[hash].js',
  38. },
  39. },
  40. },
  41. }
  42. })