File tree Expand file tree Collapse file tree 3 files changed +12
-6
lines changed Expand file tree Collapse file tree 3 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -56,7 +56,7 @@ export function getRspackPlugin<UserOptions = Record<string, never>>(
56
56
if ( plugin . resolveId ) {
57
57
const vfs = new FakeVirtualModulesPlugin ( plugin )
58
58
vfs . apply ( compiler )
59
- plugin . __vfsModules = new Set ( )
59
+ plugin . __vfsModules = new Map ( )
60
60
plugin . __vfs = vfs as any
61
61
62
62
compiler . hooks . compilation . tap ( plugin . name , ( compilation , { normalModuleFactory } ) => {
@@ -105,8 +105,14 @@ export function getRspackPlugin<UserOptions = Record<string, never>>(
105
105
// we treat it as a virtual module
106
106
if ( ! fs . existsSync ( resolved ) ) {
107
107
if ( ! plugin . __vfsModules ! . has ( resolved ) ) {
108
- plugin . __vfsModules ! . add ( resolved )
109
- await vfs . writeModule ( resolved )
108
+ const fsPromise = vfs . writeModule ( resolved )
109
+ plugin . __vfsModules ! . set ( resolved , fsPromise )
110
+ await fsPromise
111
+ }
112
+ else {
113
+ // Ensure that the module is written to the virtual file system
114
+ // before we use it.
115
+ await plugin . __vfsModules ! . get ( resolved )
110
116
}
111
117
resolved = encodeVirtualModuleId ( resolved , plugin )
112
118
}
Original file line number Diff line number Diff line change @@ -147,7 +147,7 @@ export interface UnpluginOptions {
147
147
export interface ResolvedUnpluginOptions extends UnpluginOptions {
148
148
// injected internal objects
149
149
__vfs ?: VirtualModulesPlugin
150
- __vfsModules ?: Set < string >
150
+ __vfsModules ?: Map < string , Promise < string > >
151
151
__virtualModulePrefix : string
152
152
}
153
153
Original file line number Diff line number Diff line change @@ -54,7 +54,7 @@ export function getWebpackPlugin<UserOptions = Record<string, never>>(
54
54
vfs = new VirtualModulesPlugin ( )
55
55
compiler . options . plugins . push ( vfs )
56
56
}
57
- plugin . __vfsModules = new Set ( )
57
+ plugin . __vfsModules = new Map ( )
58
58
plugin . __vfs = vfs
59
59
60
60
const resolverPlugin : ResolvePluginInstance = {
@@ -135,7 +135,7 @@ export function getWebpackPlugin<UserOptions = Record<string, never>>(
135
135
// https://github.com/unjs/unplugin/pull/155
136
136
if ( ! plugin . __vfsModules ! . has ( resolved ) ) {
137
137
plugin . __vfs ! . writeModule ( resolved , '' )
138
- plugin . __vfsModules ! . add ( resolved )
138
+ plugin . __vfsModules ! . set ( resolved , Promise . resolve ( '' ) )
139
139
}
140
140
}
141
141
You can’t perform that action at this time.
0 commit comments