1
1
/* eslint-disable n/no-extraneous-require, no-underscore-dangle, @typescript-eslint/no-explicit-any */
2
+
3
+ // This is a modified version of the require hooks from Next.js
4
+ // https://github.com/vercel/next.js/blob/b04c70573ac199a9bb3ea42201e0865e610d5b67/packages/next/src/server/require-hook.ts
5
+
2
6
import mod from 'module'
3
7
4
8
import type { NextConfig } from '../helpers/config'
@@ -7,41 +11,49 @@ const resolveFilename = (mod as any)._resolveFilename
7
11
const requireHooks = new Map < string , Map < string , string > > ( )
8
12
9
13
export const overrideRequireHooks = ( config : NextConfig ) => {
14
+ // we may have changed the working directory in the handler
15
+ const opts = {
16
+ paths : [ process . cwd ( ) ] ,
17
+ }
18
+
10
19
requireHooks . set (
11
20
'default' ,
12
21
new Map ( [
13
- [ 'react' , require . resolve ( `react` ) ] ,
14
- [ 'react/jsx-runtime' , require . resolve ( `react/jsx-runtime` ) ] ,
22
+ [ 'react' , require . resolve ( `react` , opts ) ] ,
23
+ [ 'react/jsx-runtime' , require . resolve ( `react/jsx-runtime` , opts ) ] ,
15
24
] ) ,
16
25
)
17
26
18
27
if ( config . experimental . appDir ) {
19
28
requireHooks . set (
20
29
'next' ,
21
30
new Map ( [
22
- [ 'react' , require . resolve ( `next/dist/compiled/react` ) ] ,
23
- [ 'react/jsx-runtime' , require . resolve ( `next/dist/compiled/react/jsx-runtime` ) ] ,
24
- [ 'react/jsx-dev-runtime' , require . resolve ( `next/dist/compiled/react/jsx-dev-runtime` ) ] ,
25
- [ 'react-dom' , require . resolve ( `next/dist/compiled/react-dom/server-rendering-stub` ) ] ,
26
- [ 'react-dom/client' , require . resolve ( `next/dist/compiled/react-dom/client` ) ] ,
27
- [ 'react-dom/server' , require . resolve ( `next/dist/compiled/react-dom/server` ) ] ,
28
- [ 'react-dom/server.browser' , require . resolve ( `next/dist/compiled/react-dom/server.browser` ) ] ,
29
- [ 'react-dom/server.edge' , require . resolve ( `next/dist/compiled/react-dom/server.edge` ) ] ,
30
- [ 'react-server-dom-webpack/client' , require . resolve ( `next/dist/compiled/react-server-dom-webpack/client` ) ] ,
31
+ [ 'react' , require . resolve ( `next/dist/compiled/react` , opts ) ] ,
32
+ [ 'react/jsx-runtime' , require . resolve ( `next/dist/compiled/react/jsx-runtime` , opts ) ] ,
33
+ [ 'react/jsx-dev-runtime' , require . resolve ( `next/dist/compiled/react/jsx-dev-runtime` , opts ) ] ,
34
+ [ 'react-dom' , require . resolve ( `next/dist/compiled/react-dom/server-rendering-stub` , opts ) ] ,
35
+ [ 'react-dom/client' , require . resolve ( `next/dist/compiled/react-dom/client` , opts ) ] ,
36
+ [ 'react-dom/server' , require . resolve ( `next/dist/compiled/react-dom/server` , opts ) ] ,
37
+ [ 'react-dom/server.browser' , require . resolve ( `next/dist/compiled/react-dom/server.browser` , opts ) ] ,
38
+ [ 'react-dom/server.edge' , require . resolve ( `next/dist/compiled/react-dom/server.edge` , opts ) ] ,
39
+ [
40
+ 'react-server-dom-webpack/client' ,
41
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack/client` , opts ) ,
42
+ ] ,
31
43
[
32
44
'react-server-dom-webpack/client.edge' ,
33
- require . resolve ( `next/dist/compiled/react-server-dom-webpack/client.edge` ) ,
45
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack/client.edge` , opts ) ,
34
46
] ,
35
47
[
36
48
'react-server-dom-webpack/server.edge' ,
37
- require . resolve ( `next/dist/compiled/react-server-dom-webpack/server.edge` ) ,
49
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack/server.edge` , opts ) ,
38
50
] ,
39
51
[
40
52
'react-server-dom-webpack/server.node' ,
41
- require . resolve ( `next/dist/compiled/react-server-dom-webpack/server.node` ) ,
53
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack/server.node` , opts ) ,
42
54
] ,
43
- [ 'styled-jsx' , require . resolve ( 'styled-jsx' ) ] ,
44
- [ 'styled-jsx/style' , require . resolve ( 'styled-jsx/style' ) ] ,
55
+ [ 'styled-jsx' , require . resolve ( 'styled-jsx' , opts ) ] ,
56
+ [ 'styled-jsx/style' , require . resolve ( 'styled-jsx/style' , opts ) ] ,
45
57
] ) ,
46
58
)
47
59
}
@@ -50,32 +62,32 @@ export const overrideRequireHooks = (config: NextConfig) => {
50
62
requireHooks . set (
51
63
'experimental' ,
52
64
new Map ( [
53
- [ 'react' , require . resolve ( `next/dist/compiled/react-experimental` ) ] ,
54
- [ 'react/jsx-runtime' , require . resolve ( `next/dist/compiled/react-experimental/jsx-runtime` ) ] ,
55
- [ 'react/jsx-dev-runtime' , require . resolve ( `next/dist/compiled/react-experimental/jsx-dev-runtime` ) ] ,
56
- [ 'react-dom' , require . resolve ( `next/dist/compiled/react-dom-experimental/server-rendering-stub` ) ] ,
57
- [ 'react-dom/client' , require . resolve ( `next/dist/compiled/react-dom-experimental/client` ) ] ,
58
- [ 'react-dom/server' , require . resolve ( `next/dist/compiled/react-dom-experimental/server` ) ] ,
59
- [ 'react-dom/server.browser' , require . resolve ( `next/dist/compiled/react-dom-experimental/server.browser` ) ] ,
60
- [ 'react-dom/server.edge' , require . resolve ( `next/dist/compiled/react-dom-experimental/server.edge` ) ] ,
65
+ [ 'react' , require . resolve ( `next/dist/compiled/react-experimental` , opts ) ] ,
66
+ [ 'react/jsx-runtime' , require . resolve ( `next/dist/compiled/react-experimental/jsx-runtime` , opts ) ] ,
67
+ [ 'react/jsx-dev-runtime' , require . resolve ( `next/dist/compiled/react-experimental/jsx-dev-runtime` , opts ) ] ,
68
+ [ 'react-dom' , require . resolve ( `next/dist/compiled/react-dom-experimental/server-rendering-stub` , opts ) ] ,
69
+ [ 'react-dom/client' , require . resolve ( `next/dist/compiled/react-dom-experimental/client` , opts ) ] ,
70
+ [ 'react-dom/server' , require . resolve ( `next/dist/compiled/react-dom-experimental/server` , opts ) ] ,
71
+ [ 'react-dom/server.browser' , require . resolve ( `next/dist/compiled/react-dom-experimental/server.browser` , opts ) ] ,
72
+ [ 'react-dom/server.edge' , require . resolve ( `next/dist/compiled/react-dom-experimental/server.edge` , opts ) ] ,
61
73
[
62
74
'react-server-dom-webpack/client' ,
63
- require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/client` ) ,
75
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/client` , opts ) ,
64
76
] ,
65
77
[
66
78
'react-server-dom-webpack/client.edge' ,
67
- require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/client.edge` ) ,
79
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/client.edge` , opts ) ,
68
80
] ,
69
81
[
70
82
'react-server-dom-webpack/server.edge' ,
71
- require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/server.edge` ) ,
83
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/server.edge` , opts ) ,
72
84
] ,
73
85
[
74
86
'react-server-dom-webpack/server.node' ,
75
- require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/server.node` ) ,
87
+ require . resolve ( `next/dist/compiled/react-server-dom-webpack-experimental/server.node` , opts ) ,
76
88
] ,
77
- [ 'styled-jsx' , require . resolve ( 'styled-jsx' ) ] ,
78
- [ 'styled-jsx/style' , require . resolve ( 'styled-jsx/style' ) ] ,
89
+ [ 'styled-jsx' , require . resolve ( 'styled-jsx' , opts ) ] ,
90
+ [ 'styled-jsx/style' , require . resolve ( 'styled-jsx/style' , opts ) ] ,
79
91
] ) ,
80
92
)
81
93
}
0 commit comments