diff --git a/.changeset/brave-humans-invite.md b/.changeset/brave-humans-invite.md
new file mode 100644
index 0000000000..5934ea64f0
--- /dev/null
+++ b/.changeset/brave-humans-invite.md
@@ -0,0 +1,6 @@
+---
+"react-router": patch
+"react-router-dom": patch
+---
+
+Added export maps to package.json and .mjs extension for Node ES modules
diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json
index defc0bed4d..f646bf98a9 100644
--- a/packages/react-router-dom/package.json
+++ b/packages/react-router-dom/package.json
@@ -22,6 +22,15 @@
   "unpkg": "./dist/umd/react-router-dom.production.min.js",
   "module": "./dist/index.js",
   "types": "./dist/index.d.ts",
+  "exports": {
+    ".": {
+      "types": "./dist/index.d.ts",
+      "browser": "./dist/react-router-dom.production.min.js",
+      "umd": "./ddist/umd/react-router.production.min.js",
+      "import": "./dist/index.mjs",
+      "require": "./dist/main.js"
+    }
+  },
   "dependencies": {
     "@remix-run/router": "1.3.3",
     "react-router": "6.8.2"
diff --git a/packages/react-router-dom/rollup.config.js b/packages/react-router-dom/rollup.config.js
index 0a816d13a2..356e328a1b 100644
--- a/packages/react-router-dom/rollup.config.js
+++ b/packages/react-router-dom/rollup.config.js
@@ -21,7 +21,7 @@ module.exports = function rollup() {
     {
       input: `${SOURCE_DIR}/index.tsx`,
       output: {
-        file: `${OUTPUT_DIR}/index.js`,
+        file: `${OUTPUT_DIR}/index.mjs`,
         format: "esm",
         sourcemap: !PRETTY,
         banner: createBanner("React Router DOM", version),
diff --git a/packages/react-router/package.json b/packages/react-router/package.json
index 1ad9a07bae..ef5d948ef5 100644
--- a/packages/react-router/package.json
+++ b/packages/react-router/package.json
@@ -20,8 +20,17 @@
   "sideEffects": false,
   "main": "./dist/main.js",
   "unpkg": "./dist/umd/react-router.production.min.js",
-  "module": "./dist/index.js",
+  "module": "./dist/index.mjs",
   "types": "./dist/index.d.ts",
+  "exports": {
+    ".": {
+      "types": "./dist/index.d.ts",
+      "browser": "./dist/react-router.production.min.js",
+      "umd": "./ddist/umd/react-router.production.min.js",
+      "import": "./dist/index.mjs",
+      "require": "./dist/main.js"
+    }
+  },
   "dependencies": {
     "@remix-run/router": "1.3.3"
   },
diff --git a/packages/react-router/rollup.config.js b/packages/react-router/rollup.config.js
index ff9d98a671..c2d6b30630 100644
--- a/packages/react-router/rollup.config.js
+++ b/packages/react-router/rollup.config.js
@@ -21,7 +21,7 @@ module.exports = function rollup() {
     {
       input: `${SOURCE_DIR}/index.ts`,
       output: {
-        file: `${OUTPUT_DIR}/index.js`,
+        file: `${OUTPUT_DIR}/index.mjs`,
         format: "esm",
         sourcemap: !PRETTY,
         banner: createBanner("React Router", version),