import {fileURLToPath, URL} from 'node:url' import {defineConfig} from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import vueDevTools from 'vite-plugin-vue-devtools' import federation from '@originjs/vite-plugin-federation'; // https://vite.dev/config/ export default defineConfig({ server: { port: 1300, host: '0.0.0.0', strictPort: true, }, plugins: [ vue(), vueJsx(), vueDevTools(), federation({ name: 'mainApp', // 主应用模块名(联邦模块需通过此名引用) remotes: { // 配置远程联邦模块地址(开发/生产需对应) product: 'http://localhost:1301/assets/remoteEntry.js', shared: 'http://localhost:1333/assets/remoteEntry.js' }, shared: { vue: { requiredVersion: '^3.5.18' }, axios: { requiredVersion: '^1.12.2' }, 'vue-router': { requiredVersion: '^4.0.6' }, pinia: { requiredVersion: '^3.0.3' } } }) ], build: { target: 'esnext', minify: false, cssCodeSplit: true, rollupOptions: { output: { minifyInternalExports: false } } }, resolve: { alias: { '@': fileURLToPath(new URL('./src/app/', import.meta.url)), '@shared': fileURLToPath(new URL('./src/shared/', import.meta.url)), '@features': fileURLToPath(new URL('./src/features/', import.meta.url)), '@domains': fileURLToPath(new URL('./src/domains/', import.meta.url)) }, }, })