| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { fileURLToPath, URL } from 'node:url'
- import { defineConfig } from 'vite'
- import vue from '@vitejs/plugin-vue'
- import qiankun from 'vite-plugin-qiankun'
- const SUB_APP_NAME = 'web-app'
- // qiankun 子应用:借助 vite-plugin-qiankun 暴露微前端生命周期
- export default defineConfig(({ mode }) => {
- const isProd = mode === 'production'
- return {
- // 生产环境部署在 /web/ 子路径下;开发环境用根路径便于独立调试
- base: isProd ? '/web/' : '/',
- plugins: [
- vue(),
- qiankun(SUB_APP_NAME, { useDevMode: !isProd }),
- ],
- resolve: {
- alias: {
- '@': fileURLToPath(new URL('./src', import.meta.url)),
- },
- },
- server: {
- host: '0.0.0.0',
- port: 7100,
- strictPort: true,
- cors: true,
- origin: 'http://localhost:7100',
- headers: {
- // qiankun 通过 fetch 拉取子应用资源,须允许跨域
- 'Access-Control-Allow-Origin': '*',
- },
- },
- build: {
- target: 'es2015',
- // 每个子应用产出去独立的 chunk,便于 qiankun 沙箱加载
- rollupOptions: {
- output: {
- chunkFileNames: 'assets/[name]-[hash].js',
- },
- },
- },
- }
- })
|