Repository: mui/material-ui
Pull request #45808: [code-infra] Remove modern bundles
Author: login: Janpot
Labels: name: scope: code-infra
description: Involves the code-infra product (https://www.notion.so/mui-org/5562c14178aa42af97bc1fa5114000cd).
Created: 2025-04-03T15:42:07Z | Merged: 2025-04-08T15:36:23Z

Closes https://github.com/mui/material-ui/issues/45780
Fixes https://github.com/mui/mui-public/issues/302

To Do:
- [x] upgrade migration guide


Diff:
diff --git a/.browserslistrc b/.browserslistrc
index d08b59be8ca68d..32c11c22399071 100644
--- a/.browserslistrc
+++ b/.browserslistrc
@@ -1,10 +1,3 @@
-[modern]
-last 1 chrome version
-last 1 edge version
-last 1 firefox version
-last 1 safari version
-node 14
-
 # Default/Fallback
 # `npx browserslist --mobile-to-desktop "> 0.5%, last 2 versions, Firefox ESR, not dead, safari >= 15.4, iOS >= 15.4"` when the last major is released.
 # Explicit safari versions are here based on the agreed terms in: https://github.com/mui/material-ui/issues/40958#issuecomment-1953215043
diff --git a/babel.config.js b/babel.config.js
index b8146103f7c975..e79f043d23545c 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -19,7 +19,7 @@ function resolveAliasPath(relativeToBabelConf) {
 
 /** @type {babel.ConfigFunction} */
 module.exports = function getBabelConfig(api) {
-  const useESModules = api.env(['regressions', 'modern', 'stable']);
+  const useESModules = api.env(['regressions', 'stable']);
 
   const defaultAlias = {
     '@mui/material': resolveAliasPath('./packages/mui-material/src'),
@@ -50,7 +50,6 @@ module.exports = function getBabelConfig(api) {
         browserslistEnv: api.env() || process.env.NODE_ENV,
         debug: process.env.MUI_BUILD_VERBOSE === 'true',
         modules: useESModules ? false : 'commonjs',
-        shippedProposals: api.env('modern'),
       },
     ],
     [
diff --git a/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md b/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md
index e3a16b3b73f2e0..c062300c0e9474 100644
--- a/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md
+++ b/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md
@@ -198,52 +198,3 @@ It will perform the following diffs:
 -import TextField from '@mui/material/TextField';
 +import { Button, TextField } from '@mui/material';
 ```
-
-## Available bundles
-
-### Default bundle
-
-The packages published on npm are **transpiled** with [Babel](https://github.com/babel/babel), optimized for performance with the [supported platforms](/material-ui/getting-started/supported-platforms/).
-
-A [modern bundle](#modern-bundle) is also available.
-
-### How to use custom bundles?
-
-:::error
-You are strongly discouraged to:
-
-- Import from any of the custom bundles directly. Do not do this:
-
-  ```js
-  import { Button } from '@mui/material/modern';
-  ```
-
-  You have no guarantee that the dependencies use the `modern` bundle, leading to module duplication in your JavaScript files.
-
-- Import from any of the undocumented files or folders. Do not do this:
-
-  ```js
-  import { Button } from '@mui/material/esm';
-  ```
-
-  You have no guarantee that these imports will continue to work from one version to the next.
-
-  :::
-
-A great way to use these bundles is to configure bundler export conditions, for example with [webpack's `resolve.conditionNames`](https://webpack.js.org/configuration/resolve/#resolveconditionnames) or [vite's `resolve.conditions`](https://vite.dev/config/shared-options#resolve-conditions):
-
-```js
-// webpack.config.js
-{
-  resolve: {
-    conditionNames: ['mui-modern', '...'],
-  }
-}
-
-// vite.config.js
-{
-  resolve: {
-    conditions: ['mui-modern', 'module', 'browser', 'development|production']
-  }
-}
-```
diff --git a/docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md b/docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md
index 3444af88dba959..387f6a66dcad98 100644
--- a/docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md
+++ b/docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md
@@ -93,24 +93,30 @@ Deep imports with more than one level are no longer working, at all (they were a
 
 This was never officially supported, but now it will be restricted by bundlers and runtimes.
 
-To use the modern bundle (which excludes legacy browser support for smaller bundle size), you'll need to configure your bundler to use the "mui-modern" exports condition:
+Modern bundles have also been removed, as the potential for a smaller bundle size is no longer significant.
+If you've configured aliases for these bundles, you must remove them now.
 
-```js
-// webpack.config.js
-{
-  resolve: {
-    conditionNames: ['mui-modern', '...'],
-  }
-}
-
-// vite.config.js
-{
-  resolve: {
-    conditions: ['mui-modern', 'module', 'browser', 'development|production']
-  }
-}
+```diff
+ {
+   resolve: {
+     alias: {
+-      '@mui/material': '@mui/material/modern',
+-      '@mui/styled-engine': '@mui/styled-engine/modern',
+-      '@mui/system': '@mui/system/modern',
+-      '@mui/base': '@mui/base/modern',
+-      '@mui/utils': '@mui/utils/modern',
+-      '@mui/lab': '@mui/lab/modern',
+     }
+   }
+ }
 ```
 
+:::info
+Earlier versions of this guide mention the existence of a `mui-modern` conditional exports.
+This has since been removed.
+This is a non-breaking change, and your bundler will fall back to the ESM bundle.
+:::
+
 If you are using a Vite alias to force ESM imports for the icons package, you should remove it as it's no longer necessary:
 
 ```diff
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index cc35a18d469081..6e386a435a008c 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -27,8 +27,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-docs/package.json b/packages/mui-docs/package.json
index 75fa1f1fd6d8f5..0646a2ace09cd5 100644
--- a/packages/mui-docs/package.json
+++ b/packages/mui-docs/package.json
@@ -23,7 +23,7 @@
   },
   "homepage": "https://github.com/mui/material-ui/tree/master/packages/mui-docs",
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:modern": "echo 'Skip modern build'",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
diff --git a/packages/mui-joy/package.json b/packages/mui-joy/package.json
index e42b3bf2b71de0..bca0cdee27b904 100644
--- a/packages/mui-joy/package.json
+++ b/packages/mui-joy/package.json
@@ -25,8 +25,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-lab/package.json b/packages/mui-lab/package.json
index e501b507a66c76..107abce4805ac7 100644
--- a/packages/mui-lab/package.json
+++ b/packages/mui-lab/package.json
@@ -28,8 +28,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-material-nextjs/package.json b/packages/mui-material-nextjs/package.json
index da4449f34a8e46..9f0c9832f1942d 100644
--- a/packages/mui-material-nextjs/package.json
+++ b/packages/mui-material-nextjs/package.json
@@ -24,8 +24,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-material-pigment-css/package.json b/packages/mui-material-pigment-css/package.json
index 47e6c91e73971e..8836f25fb83ab6 100644
--- a/packages/mui-material-pigment-css/package.json
+++ b/packages/mui-material-pigment-css/package.json
@@ -26,8 +26,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs styles.css",
diff --git a/packages/mui-material/package.json b/packages/mui-material/package.json
index 1e64fc2aad546d..89c70226d6fced 100644
--- a/packages/mui-material/package.json
+++ b/packages/mui-material/package.json
@@ -27,8 +27,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-private-theming/package.json b/packages/mui-private-theming/package.json
index 26d6eaae29041b..68434e95bbd298 100644
--- a/packages/mui-private-theming/package.json
+++ b/packages/mui-private-theming/package.json
@@ -26,8 +26,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-styled-engine-sc/package.json b/packages/mui-styled-engine-sc/package.json
index d7c74871121785..cd41e30ae76981 100644
--- a/packages/mui-styled-engine-sc/package.json
+++ b/packages/mui-styled-engine-sc/package.json
@@ -26,8 +26,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-styled-engine/package.json b/packages/mui-styled-engine/package.json
index 0eb40f9ded5327..8437f15ae3fca9 100644
--- a/packages/mui-styled-engine/package.json
+++ b/packages/mui-styled-engine/package.json
@@ -26,8 +26,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-system/package.json b/packages/mui-system/package.json
index 734f04b1a19ac6..634dcbe68ccc3a 100644
--- a/packages/mui-system/package.json
+++ b/packages/mui-system/package.json
@@ -26,8 +26,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/packages/mui-types/package.json b/packages/mui-types/package.json
index 5fc12c13e11891..b3dceb1a818714 100644
--- a/packages/mui-types/package.json
+++ b/packages/mui-types/package.json
@@ -22,8 +22,7 @@
   },
   "homepage": "https://github.com/mui/material-ui/tree/master/packages/mui-types",
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:types": "tsx ../../scripts/buildTypes.mts",
diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json
index 89bca3f4c37fac..9376202cc5978f 100644
--- a/packages/mui-utils/package.json
+++ b/packages/mui-utils/package.json
@@ -26,8 +26,7 @@
     "url": "https://opencollective.com/mui-org"
   },
   "scripts": {
-    "build": "pnpm build:modern && pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
-    "build:modern": "node ../../scripts/build.mjs modern",
+    "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files",
     "build:node": "node ../../scripts/build.mjs node",
     "build:stable": "node ../../scripts/build.mjs stable",
     "build:copy-files": "node ../../scripts/copyFiles.mjs",
diff --git a/scripts/build.mjs b/scripts/build.mjs
index d89a643bd7e1c4..c5c5a08872fbdf 100644
--- a/scripts/build.mjs
+++ b/scripts/build.mjs
@@ -9,8 +9,6 @@ import { getVersionEnvVariables, getWorkspaceRoot } from './utils.mjs';
 const exec = promisify(childProcess.exec);
 
 const validBundles = [
-  // modern build with a rolling target using ES6 modules
-  'modern',
   // build for node using commonJS modules
   'node',
   // build with a hardcoded target using ES6 modules
@@ -18,7 +16,6 @@ const validBundles = [
 ];
 
 const bundleTypes = {
-  modern: 'module',
   stable: 'module',
   node: 'commonjs',
 };
@@ -60,7 +57,6 @@ async function run(argv) {
 
   const relativeOutDir = {
     node: cjsDir,
-    modern: './modern',
     stable: './esm',
   }[bundle];
 
@@ -113,10 +109,9 @@ async function run(argv) {
   // `--extensions-.cjs --out-file-extension .cjs`
   await cjsCopy({ from: srcDir, to: outDir });
 
-  // Write a package.json file in the output directory if we are building the modern or stable bundle
+  // Write a package.json file in the output directory if we are building the stable bundle
   // or if the output directory is not the root of the package.
-  const shouldWriteBundlePackageJson =
-    bundle === 'modern' || bundle === 'stable' || relativeOutDir !== './';
+  const shouldWriteBundlePackageJson = bundle === 'stable' || relativeOutDir !== './';
   if (shouldWriteBundlePackageJson && !argv.skipEsmPkg) {
     const rootBundlePackageJson = path.join(outDir, 'package.json');
     await fs.writeFile(
diff --git a/scripts/copyFilesUtils.mjs b/scripts/copyFilesUtils.mjs
index 37d061a66d829d..baeb693b2c8f74 100644
--- a/scripts/copyFilesUtils.mjs
+++ b/scripts/copyFilesUtils.mjs
@@ -104,9 +104,6 @@ export async function cjsCopy({ from, to }) {
 }
 
 const srcCondition = 'mui-src';
-const modernCondition = 'mui-modern';
-const polyfillLegacyModern = false;
-const legacyModernPrefix = './modern';
 
 function createExportFor(exportName, conditions) {
   if (typeof conditions === 'object' && conditions) {
@@ -126,10 +123,6 @@ function createExportFor(exportName, conditions) {
             types: `./esm/${baseName}.d.ts`,
             default: `./esm/${baseName}.js`,
           },
-          [modernCondition]: {
-            types: `./modern/${baseName}.d.ts`,
-            default: `./modern/${baseName}.js`,
-          },
           ...rest,
         },
       };
@@ -177,17 +170,6 @@ export async function createPackageFile(useEsmExports = false) {
     }
   }
 
-  if (polyfillLegacyModern) {
-    const exportedNames = new Set(Object.keys(packageExports));
-    for (const exportedName of exportedNames) {
-      const modernName = exportedName.replace(/^\./, legacyModernPrefix);
-      const modernExport = packageExports[exportedName][modernCondition] ?? null;
-      if (modernExport && !exportedNames.has(modernName)) {
-        packageExports[modernName] = modernExport;
-      }
-    }
-  }
-
   const newPackageData = useEsmExports
     ? {
         ...packageDataOther,


Reviews:
user: login: mapache-salvaje
body: minor copy edits otherwise LGTM!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-07T15:40:30Z
user: login: JCQuintas
body: Isn't this breaking? Seems odd that we are adding it now 🤔 
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-08T08:46:51Z
user: login: JCQuintas
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-08T09:01:50Z
user: login: siriwatknp
body: 👍
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-08T12:31:19Z

Review comments:
diff_hunk: @@ -93,24 +93,27 @@ Deep imports with more than one level are no longer working, at all (they were a
 
 This was never officially supported, but now it will be restricted by bundlers and runtimes.
 
-To use the modern bundle (which excludes legacy browser support for smaller bundle size), you'll need to configure your bundler to use the "mui-modern" exports condition:
+The modern bundles have also been removed. It turned out that the potential win in bundle size is insignificant nowadays. If you've configered aliases for these bundles, you will now have to remove them.
path: docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md
user: login: mapache-salvaje
body: ```suggestion
Modern bundles have also been removed, as the potential for a smaller bundle size is no longer significant.
If you've configured aliases for these bundles, you must remove them now.
```
created_at: 2025-04-07T15:38:45Z
author_association: CONTRIBUTOR
diff_hunk: @@ -93,24 +93,27 @@ Deep imports with more than one level are no longer working, at all (they were a
 
 This was never officially supported, but now it will be restricted by bundlers and runtimes.
 
-To use the modern bundle (which excludes legacy browser support for smaller bundle size), you'll need to configure your bundler to use the "mui-modern" exports condition:
+The modern bundles have also been removed. It turned out that the potential win in bundle size is insignificant nowadays. If you've configered aliases for these bundles, you will now have to remove them.
 
-```js
-// webpack.config.js
-{
-  resolve: {
-    conditionNames: ['mui-modern', '...'],
-  }
-}
-
-// vite.config.js
-{
-  resolve: {
-    conditions: ['mui-modern', 'module', 'browser', 'development|production']
-  }
-}
+```diff
+ {
+   resolve: {
+     alias: {
+-      '@mui/material': '@mui/material/modern',
+-      '@mui/styled-engine': '@mui/styled-engine/modern',
+-      '@mui/system': '@mui/system/modern',
+-      '@mui/base': '@mui/base/modern',
+-      '@mui/utils': '@mui/utils/modern',
+-      '@mui/lab': '@mui/lab/modern',
+     }
+   }
+ }
 ```
 
+:::info
+Earlier versions of this guide mention the existence of a `mui-modern` conditional exports. This has since been removed. This is a non-breaking change, your bundler will fall back to the ESM bundle.
path: docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md
user: login: mapache-salvaje
body: ```suggestion
Earlier versions of this guide mention the existence of a `mui-modern` conditional exports. 
This has since been removed. 
This is a non-breaking change, and your bundler will fall back to the ESM bundle.
```
created_at: 2025-04-07T15:39:28Z
author_association: CONTRIBUTOR

PR comments:
user: login: mui-bot
created_at: 2025-04-03T15:46:02Z
body: 
<!--
  0 failure: 
  0 warning: 
  
  2 markdown notices
  DangerID: danger-id-Danger;
-->




## Netlify deploy preview

- [docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md](https://deploy-preview-45808--material-ui.netlify.app/material-ui/guides/minimizing-bundle-size)
- [docs/data/material/migration/upgrade-to-v7/upgrade-to-v7.md](https://deploy-preview-45808--material-ui.netlify.app/material-ui/migration/upgrade-to-v7)


## Bundle size report

[No bundle size changes (Toolpad)](https://tools-public.mui.com/prod/pages/bundleSizes?circleCIBuildNumber=814300&baseRef=master&baseCommit=6fbfc62f745bf1c8538f53f26f4b60526a892dee&prNumber=45808)
[No bundle size changes](https://mui-dashboard.netlify.app/size-comparison?circleCIBuildNumber=814300&baseRef=master&baseCommit=6fbfc62f745bf1c8538f53f26f4b60526a892dee&prNumber=45808)
<p align="right">
  Generated by :no_entry_sign: <a href="https://danger.systems/js">dangerJS</a> against 3e8ac552ca04315c3070d596e60713b252d0af13
</p>

author_association: NONE
user: login: Janpot
created_at: 2025-04-08T08:52:55Z
body: > Isn't this breaking?

Our current recommendations [aren't working](https://github.com/mui/material-ui/issues/45780). And even if they were working it would be non-breaking as well, as it would just fall back gracefully to the esm bundle. It seems more appropriate to just remove it as the modern bundles don't really contain a significant improvement to bundle size. But yes, ideally, we should've just done this as part of v7.
author_association: MEMBER
user: login: LukasTy
created_at: 2025-04-08T09:02:29Z
body: > Isn't this breaking? Seems odd that we are adding it now 🤔

I'd say that this is slightly breaking, since people will need to adjust their setup in case they were explicitly using the aliased `modern` bundle. 🤔 
If we could squeeze this in before the X stable release, it would be awesome. 🤞 🙈 
author_association: MEMBER
user: login: Janpot
created_at: 2025-04-08T09:13:37Z
body: > I'd say that this is slightly breaking, since people will need to adjust their setup in case they were explicitly using the aliased modern bundle.

Yes, but they already have to do that as part of v7. (and X v8 too btw)
author_association: MEMBER