63 lines
2.2 KiB
TypeScript
63 lines
2.2 KiB
TypeScript
|
// sync injects a hook for webpack and webpack/... requires to use the internal ncc webpack version
|
||
|
// this is in order for userland plugins to attach to the same webpack instance as next.js
|
||
|
// the individual compiled modules are as defined for the compilation in bundles/webpack/packages/*
|
||
|
|
||
|
const hookPropertyMap = new Map([
|
||
|
['webpack', 'next/dist/compiled/webpack/webpack-lib'],
|
||
|
['webpack/package', 'next/dist/compiled/webpack/package'],
|
||
|
['webpack/package.json', 'next/dist/compiled/webpack/package'],
|
||
|
['webpack/lib/webpack', 'next/dist/compiled/webpack/webpack-lib'],
|
||
|
['webpack/lib/webpack.js', 'next/dist/compiled/webpack/webpack-lib'],
|
||
|
[
|
||
|
'webpack/lib/node/NodeEnvironmentPlugin',
|
||
|
'next/dist/compiled/webpack/NodeEnvironmentPlugin',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/node/NodeEnvironmentPlugin.js',
|
||
|
'next/dist/compiled/webpack/NodeEnvironmentPlugin',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/BasicEvaluatedExpression',
|
||
|
'next/dist/compiled/webpack/BasicEvaluatedExpression',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/BasicEvaluatedExpression.js',
|
||
|
'next/dist/compiled/webpack/BasicEvaluatedExpression',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/node/NodeTargetPlugin',
|
||
|
'next/dist/compiled/webpack/NodeTargetPlugin',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/node/NodeTargetPlugin.js',
|
||
|
'next/dist/compiled/webpack/NodeTargetPlugin',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/ModuleFilenameHelpers',
|
||
|
'next/dist/compiled/webpack/ModuleFilenameHelpers',
|
||
|
],
|
||
|
[
|
||
|
'webpack/lib/ModuleFilenameHelpers.js',
|
||
|
'next/dist/compiled/webpack/ModuleFilenameHelpers',
|
||
|
],
|
||
|
['webpack/lib/GraphHelpers', 'next/dist/compiled/webpack/GraphHelpers'],
|
||
|
['webpack/lib/GraphHelpers.js', 'next/dist/compiled/webpack/GraphHelpers'],
|
||
|
['webpack-sources', 'next/dist/compiled/webpack/sources'],
|
||
|
['webpack-sources/lib', 'next/dist/compiled/webpack/sources'],
|
||
|
['webpack-sources/lib/index', 'next/dist/compiled/webpack/sources'],
|
||
|
['webpack-sources/lib/index.js', 'next/dist/compiled/webpack/sources'],
|
||
|
])
|
||
|
|
||
|
const mod = require('module')
|
||
|
const resolveFilename = mod._resolveFilename
|
||
|
mod._resolveFilename = function (
|
||
|
request: string,
|
||
|
parent: any,
|
||
|
isMain: boolean,
|
||
|
options: any
|
||
|
) {
|
||
|
const hookResolved = hookPropertyMap.get(request)
|
||
|
if (hookResolved) request = hookResolved
|
||
|
return resolveFilename.call(mod, request, parent, isMain, options)
|
||
|
}
|