Skip to content

Commit

Permalink
fix: try fix windows virtual module
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Oct 25, 2021
1 parent 6be9e24 commit 6edb3aa
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/webpack/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ const _dirname = typeof __dirname !== 'undefined' ? __dirname : dirname(fileURLT
const TRANSFORM_LOADER = resolve(_dirname, 'webpack/loaders/transform.js')
const LOAD_LOADER = resolve(_dirname, 'webpack/loaders/load.js')

function slash (path: string) {
return path.replace(/\\/g, '/')
}

export function getWebpackPlugin<UserOptions = {}> (
factory: UnpluginFactory<UserOptions>
): UnpluginInstance<UserOptions>['webpack'] {
Expand All @@ -27,7 +31,7 @@ export function getWebpackPlugin<UserOptions = {}> (
rawPlugin,
{
__unpluginMeta: meta,
__virtualModulePrefix: join(process.cwd(), '_virtual_')
__virtualModulePrefix: slash(join(process.cwd(), '_virtual_'))
}
) as ResolvedUnpluginOptions

Expand All @@ -50,7 +54,7 @@ export function getWebpackPlugin<UserOptions = {}> (
return false
}
if (plugin.transformInclude) {
return plugin.transformInclude(id)
return plugin.transformInclude(slash(id))
} else {
return true
}
Expand Down Expand Up @@ -84,8 +88,10 @@ export function getWebpackPlugin<UserOptions = {}> (
return callback()
}

const id = slash(request.request)

// call hook
const result = await plugin.resolveId!(request.request)
const result = await plugin.resolveId!(id)
if (result == null) {
return callback()
}
Expand All @@ -97,7 +103,7 @@ export function getWebpackPlugin<UserOptions = {}> (
// if the resolved module is not exists,
// we treat it as a virtual module
if (!fs.existsSync(resolved)) {
resolved = plugin.__virtualModulePrefix + request.request
resolved = plugin.__virtualModulePrefix + id
plugin.__vfs!.writeModule(resolved, '')
plugin.__vfsModules!.add(resolved)
}
Expand Down Expand Up @@ -126,7 +132,7 @@ export function getWebpackPlugin<UserOptions = {}> (
if (plugin.load && plugin.__vfsModules) {
compiler.options.module.rules.push({
include (id) {
return id != null && plugin.__vfsModules!.has(id)
return id != null && plugin.__vfsModules!.has(slash(id))
},
enforce: plugin.enforce,
use: [{
Expand Down

0 comments on commit 6edb3aa

Please sign in to comment.