@samitouri / QOS-React / commits / 9b5e0517b4

Remove deprecated wildcard folder mapping (#23256)

* 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. * Remove umd from exports Our expectation is that if you're using the UMD builds, you're not loading them through a normal module system like require or import. Instead you're probably copying the files directly or loading them from a CDN like unpkg.

Andrew Clark committed Feb 9, 2022 at 11:37 UTC 9b5e0517b4d203d49063e975a4597e9c666e0212
4 files changed +14 -13
packages/react-dom/package.json
+2 -2
@@ -50,8 +50,8 @@
50 "./profiling": "./profiling.js",
51 "./test-utils": "./test-utils.js",
52 "./unstable_testing": "./unstable_testing.js",
53 - "./package.json": "./package.json",
54 - "./": "./"
53 + "./src/*": "./src/*",
54 + "./package.json": "./package.json"
55 },
56 "browser": {
57 "./server.js": "./server.browser.js"
packages/react/package.json
+2 -1
@@ -27,7 +27,8 @@
27 "./package.json": "./package.json",
28 "./jsx-runtime": "./jsx-runtime.js",
29 "./jsx-dev-runtime": "./jsx-dev-runtime.js",
30 - "./": "./"
30 + "./unstable-shared-subset": "./unstable-shared-subset.js"
31 +
32 },
33 "repository": {
34 "type": "git",
scripts/rollup/bundles.js
+5 -5
@@ -269,7 +269,7 @@ const bundles = [
269 FB_WWW_PROD,
270 ],
271 moduleType: RENDERER,
272 - entry: 'react-dom/src/server/ReactDOMLegacyServerBrowser',
272 + entry: 'react-dom/src/server/ReactDOMLegacyServerBrowser.js',
273 name: 'react-dom-server-legacy.browser',
274 global: 'ReactDOMServer',
275 minifyWithProdErrorCodes: true,
@@ -285,7 +285,7 @@ const bundles = [
285 {
286 bundleTypes: [NODE_DEV, NODE_PROD],
287 moduleType: RENDERER,
288 - entry: 'react-dom/src/server/ReactDOMLegacyServerNode',
288 + entry: 'react-dom/src/server/ReactDOMLegacyServerNode.js',
289 name: 'react-dom-server-legacy.node',
290 externals: ['react', 'stream'],
291 minifyWithProdErrorCodes: false,
@@ -302,7 +302,7 @@ const bundles = [
302 {
303 bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
304 moduleType: RENDERER,
305 - entry: 'react-dom/src/server/ReactDOMFizzServerBrowser',
305 + entry: 'react-dom/src/server/ReactDOMFizzServerBrowser.js',
306 name: 'react-dom-server.browser',
307 global: 'ReactDOMServer',
308 minifyWithProdErrorCodes: true,
@@ -312,7 +312,7 @@ const bundles = [
312 {
313 bundleTypes: [NODE_DEV, NODE_PROD],
314 moduleType: RENDERER,
315 - entry: 'react-dom/src/server/ReactDOMFizzServerNode',
315 + entry: 'react-dom/src/server/ReactDOMFizzServerNode.js',
316 name: 'react-dom-server.node',
317 global: 'ReactDOMServer',
318 minifyWithProdErrorCodes: false,
@@ -322,7 +322,7 @@ const bundles = [
322 {
323 bundleTypes: __EXPERIMENTAL__ ? [FB_WWW_DEV, FB_WWW_PROD] : [],
324 moduleType: RENDERER,
325 - entry: 'react-server-dom-relay/src/ReactDOMServerFB',
325 + entry: 'react-server-dom-relay/src/ReactDOMServerFB.js',
326 global: 'ReactDOMServerStreaming',
327 minifyWithProdErrorCodes: false,
328 wrapWithModuleBoundaries: false,
scripts/shared/inlinedHostConfigs.js
+5 -5
@@ -12,7 +12,7 @@ module.exports = [
12 entryPoints: [
13 'react-dom',
14 'react-dom/unstable_testing',
15 - 'react-dom/src/server/ReactDOMFizzServerNode',
15 + 'react-dom/src/server/ReactDOMFizzServerNode.js',
16 'react-server-dom-webpack/writer.node.server',
17 'react-server-dom-webpack',
18 ],
@@ -34,7 +34,7 @@ module.exports = [
34 entryPoints: [
35 'react-dom',
36 'react-dom/unstable_testing',
37 - 'react-dom/src/server/ReactDOMFizzServerBrowser',
37 + 'react-dom/src/server/ReactDOMFizzServerBrowser.js',
38 'react-server-dom-webpack/writer.browser.server',
39 'react-server-dom-webpack',
40 ],
@@ -53,8 +53,8 @@ module.exports = [
53 {
54 shortName: 'dom-legacy',
55 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
58 ],
59 paths: [
60 'react-dom',
@@ -99,7 +99,7 @@ module.exports = [
99 entryPoints: [
100 'react-server-dom-relay',
101 'react-server-dom-relay/server',
102 - 'react-server-dom-relay/src/ReactDOMServerFB',
102 + 'react-server-dom-relay/src/ReactDOMServerFB.js',
103 ],
104 paths: ['react-dom', 'react-server-dom-relay'],
105 isFlowTyped: true,