@@ -33,6 +33,53 @@ function addHookAliases(
33
33
}
34
34
}
35
35
36
+ const baseOverrides = {
37
+ react : "next/dist/compiled/react" ,
38
+ "react/package.json" : "next/dist/compiled/react/package.json" ,
39
+ "react/jsx-runtime" : "next/dist/compiled/react/jsx-runtime" ,
40
+ "react/jsx-dev-runtime" : "next/dist/compiled/react/jsx-dev-runtime" ,
41
+ "react-dom" : "next/dist/compiled/react-dom/server-rendering-stub" ,
42
+ "react-dom/package.json" : "next/dist/compiled/react-dom/package.json" ,
43
+ "react-dom/client" : "next/dist/compiled/react-dom/client" ,
44
+ "react-dom/server" : "next/dist/compiled/react-dom/server" ,
45
+ "react-dom/server.browser" : "next/dist/compiled/react-dom/server.browser" ,
46
+ "react-dom/server.edge" : "next/dist/compiled/react-dom/server.edge" ,
47
+ "react-server-dom-webpack/client" :
48
+ "next/dist/compiled/react-server-dom-webpack/client" ,
49
+ "react-server-dom-webpack/client.edge" :
50
+ "next/dist/compiled/react-server-dom-webpack/client.edge" ,
51
+ "react-server-dom-webpack/server.edge" :
52
+ "next/dist/compiled/react-server-dom-webpack/server.edge" ,
53
+ "react-server-dom-webpack/server.node" :
54
+ "next/dist/compiled/react-server-dom-webpack/server.node" ,
55
+ } ;
56
+
57
+ const experimentalOverrides = {
58
+ react : "next/dist/compiled/react-experimental" ,
59
+ "react/jsx-runtime" : "next/dist/compiled/react-experimental/jsx-runtime" ,
60
+ "react/jsx-dev-runtime" :
61
+ "next/dist/compiled/react-experimental/jsx-dev-runtime" ,
62
+ "react-dom" :
63
+ "next/dist/compiled/react-dom-experimental/server-rendering-stub" ,
64
+ "react/package.json" : "next/dist/compiled/react-experimental/package.json" ,
65
+ "react-dom/package.json" :
66
+ "next/dist/compiled/react-dom-experimental/package.json" ,
67
+ "react-dom/client" : "next/dist/compiled/react-dom-experimental/client" ,
68
+ "react-dom/server" : "next/dist/compiled/react-dom-experimental/server" ,
69
+ "react-dom/server.browser" :
70
+ "next/dist/compiled/react-dom-experimental/server.browser" ,
71
+ "react-dom/server.edge" :
72
+ "next/dist/compiled/react-dom-experimental/server.edge" ,
73
+ "react-server-dom-webpack/client" :
74
+ "next/dist/compiled/react-server-dom-webpack-experimental/client" ,
75
+ "react-server-dom-webpack/client.edge" :
76
+ "next/dist/compiled/react-server-dom-webpack-experimental/client.edge" ,
77
+ "react-server-dom-webpack/server.edge" :
78
+ "next/dist/compiled/react-server-dom-webpack-experimental/server.edge" ,
79
+ "react-server-dom-webpack/server.node" :
80
+ "next/dist/compiled/react-server-dom-webpack-experimental/server.node" ,
81
+ } ;
82
+
36
83
// Add default aliases
37
84
function overrideDefault ( ) {
38
85
addHookAliases (
@@ -41,24 +88,25 @@ function overrideDefault() {
41
88
// styled-jsx needs to be resolved as the external dependency.
42
89
[ "styled-jsx" , require . resolve ( "styled-jsx" ) ] ,
43
90
[ "styled-jsx/style" , require . resolve ( "styled-jsx/style" ) ] ,
44
- [ "styled-jsx/style" , require . resolve ( "styled-jsx/style" ) ] ,
45
91
] ,
46
92
"app"
47
93
) ;
48
94
}
49
95
96
+ const toResolveMap = ( map : Record < string , string > ) : [ string , string ] [ ] =>
97
+ Object . entries ( map ) . map ( ( [ key , value ] ) => [ key , require . resolve ( value ) ] ) ;
98
+
50
99
// Override built-in React packages if necessary
51
100
function overrideReact ( config : NextConfig ) {
52
- addHookAliases (
53
- [
54
- [ "react" , require . resolve ( `react` ) ] ,
55
- [ "react/jsx-runtime" , require . resolve ( `react/jsx-runtime` ) ] ,
56
- ] ,
57
- "page"
58
- ) ;
101
+ addHookAliases ( [ [ "react" , require . resolve ( `react` ) ] ] , "page" ) ;
59
102
60
103
// ignore: react/jsx-dev-runtime is not available on older version of Next.js ie. v13.1.6
104
+ // react/jsx-runtime is not available on newer version of Next.js ie. v13.4.10-canary.3
61
105
try {
106
+ addHookAliases (
107
+ [ [ "react/jsx-runtime" , require . resolve ( `react/jsx-runtime` ) ] ] ,
108
+ "page"
109
+ ) ;
62
110
addHookAliases (
63
111
[ [ "react/jsx-dev-runtime" , require . resolve ( `react/jsx-dev-runtime` ) ] ] ,
64
112
"page"
@@ -67,135 +115,9 @@ function overrideReact(config: NextConfig) {
67
115
68
116
if ( config . experimental . appDir ) {
69
117
if ( config . experimental . serverActions ) {
70
- addHookAliases (
71
- [
72
- [ "react" , require . resolve ( `next/dist/compiled/react-experimental` ) ] ,
73
- [
74
- "react/jsx-runtime" ,
75
- require . resolve (
76
- `next/dist/compiled/react-experimental/jsx-runtime`
77
- ) ,
78
- ] ,
79
- [
80
- "react/jsx-dev-runtime" ,
81
- require . resolve (
82
- `next/dist/compiled/react-experimental/jsx-dev-runtime`
83
- ) ,
84
- ] ,
85
- [
86
- "react-dom" ,
87
- require . resolve (
88
- `next/dist/compiled/react-dom-experimental/server-rendering-stub`
89
- ) ,
90
- ] ,
91
- [
92
- "react-dom/client" ,
93
- require . resolve ( `next/dist/compiled/react-dom-experimental/client` ) ,
94
- ] ,
95
- [
96
- "react-dom/server" ,
97
- require . resolve ( `next/dist/compiled/react-dom-experimental/server` ) ,
98
- ] ,
99
- [
100
- "react-dom/server.browser" ,
101
- require . resolve (
102
- `next/dist/compiled/react-dom-experimental/server.browser`
103
- ) ,
104
- ] ,
105
- [
106
- "react-dom/server.edge" ,
107
- require . resolve (
108
- `next/dist/compiled/react-dom-experimental/server.edge`
109
- ) ,
110
- ] ,
111
- [
112
- "react-server-dom-webpack/client" ,
113
- require . resolve (
114
- `next/dist/compiled/react-server-dom-webpack-experimental/client`
115
- ) ,
116
- ] ,
117
- [
118
- "react-server-dom-webpack/client.edge" ,
119
- require . resolve (
120
- `next/dist/compiled/react-server-dom-webpack-experimental/client.edge`
121
- ) ,
122
- ] ,
123
- [
124
- "react-server-dom-webpack/server.edge" ,
125
- require . resolve (
126
- `next/dist/compiled/react-server-dom-webpack-experimental/server.edge`
127
- ) ,
128
- ] ,
129
- [
130
- "react-server-dom-webpack/server.node" ,
131
- require . resolve (
132
- `next/dist/compiled/react-server-dom-webpack-experimental/server.node`
133
- ) ,
134
- ] ,
135
- ] ,
136
- "app"
137
- ) ;
118
+ addHookAliases ( toResolveMap ( experimentalOverrides ) , "app" ) ;
138
119
} else {
139
- addHookAliases (
140
- [
141
- [ "react" , require . resolve ( `next/dist/compiled/react` ) ] ,
142
- [
143
- "react/jsx-runtime" ,
144
- require . resolve ( `next/dist/compiled/react/jsx-runtime` ) ,
145
- ] ,
146
- [
147
- "react/jsx-dev-runtime" ,
148
- require . resolve ( `next/dist/compiled/react/jsx-dev-runtime` ) ,
149
- ] ,
150
- [
151
- "react-dom" ,
152
- require . resolve (
153
- `next/dist/compiled/react-dom/server-rendering-stub`
154
- ) ,
155
- ] ,
156
- [
157
- "react-dom/client" ,
158
- require . resolve ( `next/dist/compiled/react-dom/client` ) ,
159
- ] ,
160
- [
161
- "react-dom/server" ,
162
- require . resolve ( `next/dist/compiled/react-dom/server` ) ,
163
- ] ,
164
- [
165
- "react-dom/server.browser" ,
166
- require . resolve ( `next/dist/compiled/react-dom/server.browser` ) ,
167
- ] ,
168
- [
169
- "react-dom/server.edge" ,
170
- require . resolve ( `next/dist/compiled/react-dom/server.edge` ) ,
171
- ] ,
172
- [
173
- "react-server-dom-webpack/client" ,
174
- require . resolve (
175
- `next/dist/compiled/react-server-dom-webpack/client`
176
- ) ,
177
- ] ,
178
- [
179
- "react-server-dom-webpack/client.edge" ,
180
- require . resolve (
181
- `next/dist/compiled/react-server-dom-webpack/client.edge`
182
- ) ,
183
- ] ,
184
- [
185
- "react-server-dom-webpack/server.edge" ,
186
- require . resolve (
187
- `next/dist/compiled/react-server-dom-webpack/server.edge`
188
- ) ,
189
- ] ,
190
- [
191
- "react-server-dom-webpack/server.node" ,
192
- require . resolve (
193
- `next/dist/compiled/react-server-dom-webpack/server.node`
194
- ) ,
195
- ] ,
196
- ] ,
197
- "app"
198
- ) ;
120
+ addHookAliases ( toResolveMap ( baseOverrides ) , "app" ) ;
199
121
}
200
122
}
201
123
}
0 commit comments