@@ -11,6 +11,7 @@ import {
11
11
generateTypesInChildProcess ,
12
12
retrieveTypesAssetsInfo ,
13
13
} from '../core/index' ;
14
+ import path from 'path' ;
14
15
15
16
export class GenerateTypesPlugin implements WebpackPluginInstance {
16
17
pluginOptions : moduleFederationPlugin . ModuleFederationPluginOptions ;
@@ -88,10 +89,20 @@ export class GenerateTypesPlugin implements WebpackPluginInstance {
88
89
return ;
89
90
}
90
91
await generateTypesFn ( finalOptions ) ;
92
+ const config = finalOptions . remote . moduleFederationConfig ;
93
+ let zipPrefix = '' ;
94
+ const isManifestObject = typeof config . manifest === 'object' ;
95
+ if ( isManifestObject && config . manifest . filePath ) {
96
+ zipPrefix = config . manifest . filePath ;
97
+ } else if ( isManifestObject && config . manifest . fileName ) {
98
+ zipPrefix = path . dirname ( config . manifest . fileName ) ;
99
+ } else if ( config . filename ) {
100
+ zipPrefix = path . dirname ( config . filename ) ;
101
+ }
91
102
92
103
if ( zipTypesPath ) {
93
104
compilation . emitAsset (
94
- zipName ,
105
+ path . join ( zipPrefix , zipName ) ,
95
106
new compiler . webpack . sources . RawSource (
96
107
fs . readFileSync ( zipTypesPath ) ,
97
108
false ,
@@ -101,7 +112,7 @@ export class GenerateTypesPlugin implements WebpackPluginInstance {
101
112
102
113
if ( apiTypesPath ) {
103
114
compilation . emitAsset (
104
- apiFileName ,
115
+ path . join ( zipPrefix , apiFileName ) ,
105
116
new compiler . webpack . sources . RawSource (
106
117
fs . readFileSync ( apiTypesPath ) ,
107
118
false ,
0 commit comments