Skip to content

Commit 05dd99b

Browse files
committed
Remove deprecated folder mapping
Node v16 deprecated the use of trailing "/" to define subpath folder mappings in the "exports" field of package.json. The recommendation is to explicitly list all our exports. We already do that for all our public modules. I believe the only reason we have a wildcard pattern is because our package.json files are also used at build time (by Rollup) to resolve internal source modules that don't appear in the final npm artifact. Changing trailing "/" to "/*" fixes the warnings. See https://nodejs.org/api/packages.html#subpath-patterns for more info. Since the wildcard pattern only exists so our build script has access to internal at build time, I've scoped the wildcard to "/src*". Because our public modules are located outside the "src" directory, this means deep imports of our modules will no longer work: only packages that are listed in the "exports" field. The only two affected packages are react-dom and react. We need to be sure that all our public modules are still reachable. I audited the exports by comparing the entries to the "files" field in package.json, which represents a complete list of the files that are included in the final release artifact. At some point, we should add an e2e packaging test to prevent regressions; for now, we should have decent coverage because in CI we run our Jest test suite against the release artifacts.
1 parent 2dada24 commit 05dd99b

File tree

5 files changed

+18
-13
lines changed

5 files changed

+18
-13
lines changed

packages/react-dom/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,10 @@
5050
"./profiling": "./profiling.js",
5151
"./test-utils": "./test-utils.js",
5252
"./unstable_testing": "./unstable_testing.js",
53-
"./package.json": "./package.json",
54-
"./": "./"
53+
"./testing": "./testing.js",
54+
"./umd/*": "./umd/*",
55+
"./src/*": "./src/*",
56+
"./package.json": "./package.json"
5557
},
5658
"browser": {
5759
"./server.js": "./server.browser.js"

packages/react-server-dom-webpack/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"./writer.browser.server": "./writer.browser.server.js",
3636
"./node-loader": "./esm/react-server-dom-webpack-node-loader.js",
3737
"./node-register": "./node-register.js",
38+
"./src/*": "./src/*",
3839
"./package.json": "./package.json"
3940
},
4041
"main": "index.js",

packages/react/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
"./package.json": "./package.json",
2828
"./jsx-runtime": "./jsx-runtime.js",
2929
"./jsx-dev-runtime": "./jsx-dev-runtime.js",
30-
"./": "./"
30+
"./umd/*": "./umd/*",
31+
"./unstable-shared-subset": "./unstable-shared-subset.js"
32+
3133
},
3234
"repository": {
3335
"type": "git",

scripts/rollup/bundles.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ const bundles = [
268268
FB_WWW_PROD,
269269
],
270270
moduleType: RENDERER,
271-
entry: 'react-dom/src/server/ReactDOMLegacyServerBrowser',
271+
entry: 'react-dom/src/server/ReactDOMLegacyServerBrowser.js',
272272
name: 'react-dom-server-legacy.browser',
273273
global: 'ReactDOMServer',
274274
minifyWithProdErrorCodes: true,
@@ -284,7 +284,7 @@ const bundles = [
284284
{
285285
bundleTypes: [NODE_DEV, NODE_PROD],
286286
moduleType: RENDERER,
287-
entry: 'react-dom/src/server/ReactDOMLegacyServerNode',
287+
entry: 'react-dom/src/server/ReactDOMLegacyServerNode.js',
288288
name: 'react-dom-server-legacy.node',
289289
externals: ['react', 'stream'],
290290
minifyWithProdErrorCodes: false,
@@ -301,7 +301,7 @@ const bundles = [
301301
{
302302
bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
303303
moduleType: RENDERER,
304-
entry: 'react-dom/src/server/ReactDOMFizzServerBrowser',
304+
entry: 'react-dom/src/server/ReactDOMFizzServerBrowser.js',
305305
name: 'react-dom-server.browser',
306306
global: 'ReactDOMServer',
307307
minifyWithProdErrorCodes: true,
@@ -311,7 +311,7 @@ const bundles = [
311311
{
312312
bundleTypes: [NODE_DEV, NODE_PROD],
313313
moduleType: RENDERER,
314-
entry: 'react-dom/src/server/ReactDOMFizzServerNode',
314+
entry: 'react-dom/src/server/ReactDOMFizzServerNode.js',
315315
name: 'react-dom-server.node',
316316
global: 'ReactDOMServer',
317317
minifyWithProdErrorCodes: false,
@@ -321,7 +321,7 @@ const bundles = [
321321
{
322322
bundleTypes: __EXPERIMENTAL__ ? [FB_WWW_DEV, FB_WWW_PROD] : [],
323323
moduleType: RENDERER,
324-
entry: 'react-server-dom-relay/src/ReactDOMServerFB',
324+
entry: 'react-server-dom-relay/src/ReactDOMServerFB.js',
325325
global: 'ReactDOMServerStreaming',
326326
minifyWithProdErrorCodes: false,
327327
wrapWithModuleBoundaries: false,

scripts/shared/inlinedHostConfigs.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module.exports = [
1212
entryPoints: [
1313
'react-dom',
1414
'react-dom/testing',
15-
'react-dom/src/server/ReactDOMFizzServerNode',
15+
'react-dom/src/server/ReactDOMFizzServerNode.js',
1616
'react-server-dom-webpack/writer.node.server',
1717
'react-server-dom-webpack',
1818
],
@@ -34,7 +34,7 @@ module.exports = [
3434
entryPoints: [
3535
'react-dom',
3636
'react-dom/testing',
37-
'react-dom/src/server/ReactDOMFizzServerBrowser',
37+
'react-dom/src/server/ReactDOMFizzServerBrowser.js',
3838
'react-server-dom-webpack/writer.browser.server',
3939
'react-server-dom-webpack',
4040
],
@@ -53,8 +53,8 @@ module.exports = [
5353
{
5454
shortName: 'dom-legacy',
5555
entryPoints: [
56-
'react-dom/src/server/ReactDOMLegacyServerBrowser', // react-dom/server.browser
57-
'react-dom/src/server/ReactDOMLegacyServerNode', // react-dom/server.node
56+
'react-dom/src/server/ReactDOMLegacyServerBrowser.js', // react-dom/server.browser
57+
'react-dom/src/server/ReactDOMLegacyServerNode.js', // react-dom/server.node
5858
],
5959
paths: [
6060
'react-dom',
@@ -99,7 +99,7 @@ module.exports = [
9999
entryPoints: [
100100
'react-server-dom-relay',
101101
'react-server-dom-relay/server',
102-
'react-server-dom-relay/src/ReactDOMServerFB',
102+
'react-server-dom-relay/src/ReactDOMServerFB.js',
103103
],
104104
paths: ['react-dom', 'react-server-dom-relay'],
105105
isFlowTyped: true,

0 commit comments

Comments
 (0)