forked from module-federation/vite
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.js
More file actions
64 lines (63 loc) · 1.84 KB
/
vite.config.js
File metadata and controls
64 lines (63 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import { federation } from '@module-federation/vite';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
import topLevelAwait from 'vite-plugin-top-level-await';
// https://vitejs.dev/config/
export default defineConfig({
server: {
open: false,
port: 5176,
origin: 'http://localhost:5176',
},
preview: {
port: 5176,
},
base: 'http://localhost:5176/testbase',
plugins: [
react({ jsxImportSource: '@emotion/react' }),
federation({
name: '@namespace/viteViteRemote',
exposes: {
'./App1': './src/App1',
'./App2': './src/App2.jsx',
'./AgGridDemo': './src/AgGridDemo.jsx',
'./MuiDemo': './src/MuiDemo.jsx',
'./StyledDemo': './src/StyledDemo.jsx',
'./EmotionDemo': './src/EmotionDemo.jsx',
'.': './src/App.jsx',
},
dts: false,
filename: 'remoteEntry-[hash].js',
varFilename: 'varRemoteEntry.js', // in cases when host's config requires remote's "type": "var"
manifest: true,
shared: {
vue: {},
'react/': { singleton: true },
react: {
singleton: true,
requiredVersion: '18',
},
'react-dom/': { singleton: true },
'react-dom': { singleton: true },
'styled-components': { singleton: true },
'ag-grid-community/': {},
'ag-grid-react': {},
'@emotion/react': {},
'@emotion/styled': { singleton: true },
'@mui/material': {},
},
}),
// If you set build.target: "chrome89", you can remove this plugin
false && topLevelAwait(),
],
build: {
target: 'chrome89',
rollupOptions: {
output: {
chunkFileNames: 'static/js/[name]-[hash].js',
entryFileNames: 'static/js/[name]-[hash].js',
assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
},
},
},
});