Skip to content

Commit ffb2cfd

Browse files
conico974fwang
andauthored
fix: missing react/jsx-runtime for require-hooks (#159)
* fix: missing react/jsx-runtime for require-hooks * Server: fix missing react/jsx-runtime for require-hooks --------- Co-authored-by: Frank <wangfanjie@gmail.com>
1 parent 67fc8b6 commit ffb2cfd

File tree

2 files changed

+63
-136
lines changed

2 files changed

+63
-136
lines changed

.changeset/moody-ways-knock.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"open-next": patch
3+
---
4+
5+
Server: fix missing react/jsx-runtime for require-hooks

packages/open-next/src/adapters/require-hooks.ts

Lines changed: 58 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,53 @@ function addHookAliases(
3333
}
3434
}
3535

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+
3683
// Add default aliases
3784
function overrideDefault() {
3885
addHookAliases(
@@ -41,24 +88,25 @@ function overrideDefault() {
4188
// styled-jsx needs to be resolved as the external dependency.
4289
["styled-jsx", require.resolve("styled-jsx")],
4390
["styled-jsx/style", require.resolve("styled-jsx/style")],
44-
["styled-jsx/style", require.resolve("styled-jsx/style")],
4591
],
4692
"app"
4793
);
4894
}
4995

96+
const toResolveMap = (map: Record<string, string>): [string, string][] =>
97+
Object.entries(map).map(([key, value]) => [key, require.resolve(value)]);
98+
5099
// Override built-in React packages if necessary
51100
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");
59102

60103
// 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
61105
try {
106+
addHookAliases(
107+
[["react/jsx-runtime", require.resolve(`react/jsx-runtime`)]],
108+
"page"
109+
);
62110
addHookAliases(
63111
[["react/jsx-dev-runtime", require.resolve(`react/jsx-dev-runtime`)]],
64112
"page"
@@ -67,135 +115,9 @@ function overrideReact(config: NextConfig) {
67115

68116
if (config.experimental.appDir) {
69117
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");
138119
} 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");
199121
}
200122
}
201123
}

0 commit comments

Comments
 (0)