diff --git a/.changeset/purple-zoos-refuse.md b/.changeset/purple-zoos-refuse.md
new file mode 100644
index 00000000000..afd122d699a
--- /dev/null
+++ b/.changeset/purple-zoos-refuse.md
@@ -0,0 +1,21 @@
+---
+"create-remix": major
+"remix": major
+"@remix-run/architect": major
+"@remix-run/cloudflare": major
+"@remix-run/cloudflare-pages": major
+"@remix-run/cloudflare-workers": major
+"@remix-run/css-bundle": major
+"@remix-run/deno": major
+"@remix-run/dev": major
+"@remix-run/express": major
+"@remix-run/netlify": major
+"@remix-run/node": major
+"@remix-run/react": major
+"@remix-run/serve": major
+"@remix-run/server-runtime": major
+"@remix-run/testing": major
+"@remix-run/vercel": major
+---
+
+Require Node >=18.0.0
diff --git a/.github/workflows/release-test.yml b/.github/workflows/release-test.yml
index c5972bcec8e..16a242ce61c 100644
--- a/.github/workflows/release-test.yml
+++ b/.github/workflows/release-test.yml
@@ -16,4 +16,4 @@ jobs:
if: github.repository == 'remix-run/remix'
uses: ./.github/workflows/reusable-test.yml
with:
- node_version: "[14, 16, 18]"
+ node_version: "[18, 20]"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4942ce3597f..cd4016cff87 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -81,7 +81,7 @@ jobs:
- name: ⎔ Setup node
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: 18
cache: "npm"
- id: find_package_version
diff --git a/.github/workflows/reusable-test.yml b/.github/workflows/reusable-test.yml
index 01f87c177c2..74b87348d73 100644
--- a/.github/workflows/reusable-test.yml
+++ b/.github/workflows/reusable-test.yml
@@ -6,7 +6,7 @@ on:
node_version:
required: true
# this is limited to string | boolean | number (https://github.community/t/can-action-inputs-be-arrays/16457)
- # but we want to pass an array (node_version: "[14, 16, 18]"),
+ # but we want to pass an array (node_version: "[18, 20]"),
# so we'll need to manually stringify it for now
type: string
diff --git a/.github/workflows/stacks.yml b/.github/workflows/stacks.yml
index 2cdd2804acc..7aeffde1954 100644
--- a/.github/workflows/stacks.yml
+++ b/.github/workflows/stacks.yml
@@ -29,7 +29,7 @@ jobs:
- name: ⎔ Setup node
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: 18
- name: ⚒️ Create new ${{ matrix.stack.name }} app with ${{ inputs.version }}
run: |
@@ -94,7 +94,7 @@ jobs:
- name: ⎔ Setup node and dependency caching
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: 18
cache: npm
cache-dependency-path: ${{ matrix.stack.name }}/package.json
@@ -137,7 +137,7 @@ jobs:
- name: ⎔ Setup node and dependency caching
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: 18
cache: npm
cache-dependency-path: ${{ matrix.stack.name }}/package.json
@@ -180,7 +180,7 @@ jobs:
- name: ⎔ Setup node and dependency caching
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: 18
cache: npm
cache-dependency-path: ${{ matrix.stack.name }}/package.json
@@ -226,7 +226,7 @@ jobs:
- name: ⎔ Setup node and dependency caching
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: 18
cache: npm
cache-dependency-path: ${{ matrix.stack.name }}/package.json
diff --git a/.nvmrc b/.nvmrc
index b6a7d89c68e..3c032078a4a 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-16
+18
diff --git a/babel.config.js b/babel.config.js
index 05f42ce1a49..6470112c8c4 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -4,7 +4,7 @@ module.exports = {
"@babel/preset-env",
{
targets: {
- node: "14",
+ node: "18",
},
},
],
diff --git a/docs/guides/typescript.md b/docs/guides/typescript.md
index 05c795f1361..dd3e7f4cae0 100644
--- a/docs/guides/typescript.md
+++ b/docs/guides/typescript.md
@@ -36,7 +36,7 @@ The Remix compiler will not do any type checking (it simply removes the types).
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
```
diff --git a/docs/tutorials/blog.md b/docs/tutorials/blog.md
index 12fcb43c8a7..c6fa7d27a2c 100644
--- a/docs/tutorials/blog.md
+++ b/docs/tutorials/blog.md
@@ -21,13 +21,13 @@ Click this button to create a [Gitpod][gitpod] workspace with the project set up
If you want to follow this tutorial locally on your own computer, it is important for you to have these things installed:
-- [Node.js][node-js] version (^14.17.0, or >=16.0.0)
+- [Node.js][node-js] version (>=18.0.0)
- [npm][npm] 7 or greater
- A code editor ([VSCode][vs-code] is a nice one)
## Creating the project
-Make sure you are running at least Node v14 or greater
+Make sure you are running at least Node v18 or greater
💿 Initialize a new Remix project. We'll call ours "blog-tutorial" but you can call it something else if you'd like.
diff --git a/docs/tutorials/jokes.md b/docs/tutorials/jokes.md
index d23f77a3fc9..6992882b43b 100644
--- a/docs/tutorials/jokes.md
+++ b/docs/tutorials/jokes.md
@@ -57,7 +57,7 @@ You'll find links to the sections of the tutorial in the navbar (top of the page
You can follow along with this tutorial on [CodeSandbox][code-sandbox] (a fantastic in-browser editor) or locally on your own computer. If you use the CodeSandbox approach then all you need is a good internet connection and a modern browser. If you run things locally then you're going to need some things installed:
-- [Node.js][node-js] version (^14.17.0, or >=16.0.0)
+- [Node.js][node-js] version (>=18.0.0)
- [npm][npm] 7 or greater
- A code editor ([VSCode][vs-code] is a nice one)
diff --git a/integration/compiler-mjs-output-test.ts b/integration/compiler-mjs-output-test.ts
index 4f675344427..84c69e7cd75 100644
--- a/integration/compiler-mjs-output-test.ts
+++ b/integration/compiler-mjs-output-test.ts
@@ -43,7 +43,7 @@ test.beforeAll(async () => {
"typescript": "0.0.0-local-version"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
`,
diff --git a/integration/helpers/cf-template/package.json b/integration/helpers/cf-template/package.json
index 99fc4262b64..3f0c25d358a 100644
--- a/integration/helpers/cf-template/package.json
+++ b/integration/helpers/cf-template/package.json
@@ -20,6 +20,6 @@
"typescript": "0.0.0-local-version"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/integration/helpers/deno-template/package.json b/integration/helpers/deno-template/package.json
index ecc8220007f..406510217e7 100644
--- a/integration/helpers/deno-template/package.json
+++ b/integration/helpers/deno-template/package.json
@@ -13,6 +13,6 @@
"@remix-run/dev": "0.0.0-local-version"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/integration/helpers/node-template/package.json b/integration/helpers/node-template/package.json
index 802e6e871dc..095f0ddddeb 100644
--- a/integration/helpers/node-template/package.json
+++ b/integration/helpers/node-template/package.json
@@ -23,6 +23,6 @@
"typescript": "0.0.0-local-version"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/integration/hmr-log-test.ts b/integration/hmr-log-test.ts
index 1691476cf5d..04a077aa6a1 100644
--- a/integration/hmr-log-test.ts
+++ b/integration/hmr-log-test.ts
@@ -48,7 +48,7 @@ let fixture = (options: { appPort: number; devPort: number }): FixtureInit => ({
typescript: "0.0.0-local-version",
},
engines: {
- node: ">=14.0.0",
+ node: ">=18.0.0",
},
}),
diff --git a/integration/hmr-test.ts b/integration/hmr-test.ts
index 8df8a747317..785b3c3f2eb 100644
--- a/integration/hmr-test.ts
+++ b/integration/hmr-test.ts
@@ -49,7 +49,7 @@ let fixture = (options: { appPort: number; devPort: number }): FixtureInit => ({
typescript: "0.0.0-local-version",
},
engines: {
- node: ">=14.0.0",
+ node: ">=18.0.0",
},
}),
diff --git a/integration/server-entry-test.ts b/integration/server-entry-test.ts
index d5eee980441..e2c7b20bdc0 100644
--- a/integration/server-entry-test.ts
+++ b/integration/server-entry-test.ts
@@ -103,7 +103,7 @@ test.describe("Default Server Entry (React 17)", () => {
typescript: "0.0.0-local-version",
},
engines: {
- node: ">=14.0.0",
+ node: ">=18.0.0",
},
}),
},
diff --git a/package.json b/package.json
index b450e52064b..56575acca1e 100644
--- a/package.json
+++ b/package.json
@@ -139,6 +139,6 @@
"unist-util-visit": "^4.1.1"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/create-remix/__tests__/fixtures/stack/package.json b/packages/create-remix/__tests__/fixtures/stack/package.json
index 3ab75a6c52e..e5324d2af03 100644
--- a/packages/create-remix/__tests__/fixtures/stack/package.json
+++ b/packages/create-remix/__tests__/fixtures/stack/package.json
@@ -10,6 +10,6 @@
"dependencies": {},
"devDependencies": {},
"engines": {
- "node": ">=14"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json
index 3affe1c7339..fa4ff500f1d 100644
--- a/packages/create-remix/package.json
+++ b/packages/create-remix/package.json
@@ -41,7 +41,7 @@
"esbuild-register": "^3.3.2"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json
index ad0282821dd..51a7ca562d3 100644
--- a/packages/remix-architect/package.json
+++ b/packages/remix-architect/package.json
@@ -23,7 +23,7 @@
"lambda-tester": "^4.0.1"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json
index 80fc3af8095..863a95c6f8e 100644
--- a/packages/remix-cloudflare-pages/package.json
+++ b/packages/remix-cloudflare-pages/package.json
@@ -25,7 +25,7 @@
"@cloudflare/workers-types": "^4.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json
index 53807a0b80f..b1533e80122 100644
--- a/packages/remix-cloudflare-workers/package.json
+++ b/packages/remix-cloudflare-workers/package.json
@@ -25,7 +25,7 @@
"@cloudflare/workers-types": "^4.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json
index acc7f2c83d3..d585645d416 100644
--- a/packages/remix-cloudflare/package.json
+++ b/packages/remix-cloudflare/package.json
@@ -24,7 +24,7 @@
"@cloudflare/workers-types": "^4.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json
index 85dabd0ae03..035a839ae13 100644
--- a/packages/remix-css-bundle/package.json
+++ b/packages/remix-css-bundle/package.json
@@ -16,6 +16,6 @@
"module": "./dist/esm/index.js",
"typings": "./dist/index.d.ts",
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json
index 7eae1eeec3a..098480a2a4f 100644
--- a/packages/remix-deno/package.json
+++ b/packages/remix-deno/package.json
@@ -19,6 +19,6 @@
"mime": "^3.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-dev/__tests__/fixtures/cloudflare/package.json b/packages/remix-dev/__tests__/fixtures/cloudflare/package.json
index f23eaae6691..d9e0a489d8d 100644
--- a/packages/remix-dev/__tests__/fixtures/cloudflare/package.json
+++ b/packages/remix-dev/__tests__/fixtures/cloudflare/package.json
@@ -31,6 +31,6 @@
"wrangler": "^2.2.1"
},
"engines": {
- "node": ">=16.13.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-dev/__tests__/fixtures/deno/package.json b/packages/remix-dev/__tests__/fixtures/deno/package.json
index 9ee2f64afe2..cf4c121b700 100644
--- a/packages/remix-dev/__tests__/fixtures/deno/package.json
+++ b/packages/remix-dev/__tests__/fixtures/deno/package.json
@@ -25,6 +25,6 @@
"npm-run-all": "^4.1.5"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-dev/__tests__/fixtures/indie-stack/package.json b/packages/remix-dev/__tests__/fixtures/indie-stack/package.json
index c456c8d9807..37a0522678a 100644
--- a/packages/remix-dev/__tests__/fixtures/indie-stack/package.json
+++ b/packages/remix-dev/__tests__/fixtures/indie-stack/package.json
@@ -19,6 +19,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-dev/__tests__/fixtures/node/package.json b/packages/remix-dev/__tests__/fixtures/node/package.json
index 7af91dfb316..0bfeaf17a79 100644
--- a/packages/remix-dev/__tests__/fixtures/node/package.json
+++ b/packages/remix-dev/__tests__/fixtures/node/package.json
@@ -24,6 +24,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-dev/__tests__/fixtures/stack/package.json b/packages/remix-dev/__tests__/fixtures/stack/package.json
index 839ecf39c1b..e5324d2af03 100644
--- a/packages/remix-dev/__tests__/fixtures/stack/package.json
+++ b/packages/remix-dev/__tests__/fixtures/stack/package.json
@@ -10,6 +10,6 @@
"dependencies": {},
"devDependencies": {},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-dev/cli/run.ts b/packages/remix-dev/cli/run.ts
index b74b003ef1d..cf0103fa3d0 100644
--- a/packages/remix-dev/cli/run.ts
+++ b/packages/remix-dev/cli/run.ts
@@ -92,9 +92,9 @@ ${colors.logoBlue("R")} ${colors.logoGreen("E")} ${colors.logoYellow(
export async function run(argv: string[] = process.argv.slice(2)) {
// Check the node version
let versions = process.versions;
- if (versions && versions.node && semver.major(versions.node) < 14) {
+ if (versions && versions.node && semver.major(versions.node) < 18) {
throw new Error(
- `️🚨 Oops, Node v${versions.node} detected. Remix requires a Node version greater than 14.`
+ `️🚨 Oops, Node v${versions.node} detected. Remix requires a Node version greater than 18.`
);
}
diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json
index 6217fe4e5cd..06e21ed1513 100644
--- a/packages/remix-dev/package.json
+++ b/packages/remix-dev/package.json
@@ -99,7 +99,7 @@
}
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json
index 382deb84926..11b5f51e513 100644
--- a/packages/remix-eslint-config/package.json
+++ b/packages/remix-eslint-config/package.json
@@ -58,6 +58,6 @@
}
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json
index 9fbe013b2ce..c077ab3d62a 100644
--- a/packages/remix-express/package.json
+++ b/packages/remix-express/package.json
@@ -27,7 +27,7 @@
"express": "^4.17.1"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-netlify/package.json b/packages/remix-netlify/package.json
index b79fe148142..97bf488bab6 100644
--- a/packages/remix-netlify/package.json
+++ b/packages/remix-netlify/package.json
@@ -23,7 +23,7 @@
"@netlify/functions": "^1.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json
index f45ab54580f..c4f18f247ac 100644
--- a/packages/remix-node/package.json
+++ b/packages/remix-node/package.json
@@ -32,7 +32,7 @@
"@types/source-map-support": "^0.5.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json
index 4ff0997f8ea..86a76dc66fd 100644
--- a/packages/remix-react/package.json
+++ b/packages/remix-react/package.json
@@ -33,7 +33,7 @@
"react-dom": ">=16.8.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json
index b9aadfc7f7e..6d6ddf3afab 100644
--- a/packages/remix-serve/package.json
+++ b/packages/remix-serve/package.json
@@ -29,7 +29,7 @@
"@types/morgan": "^1.9.2"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json
index e840eb6f2c4..b5a5fe0e7b8 100644
--- a/packages/remix-server-runtime/package.json
+++ b/packages/remix-server-runtime/package.json
@@ -28,7 +28,7 @@
"@types/set-cookie-parser": "^2.4.1"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json
index aa1f671a687..74009669640 100644
--- a/packages/remix-testing/package.json
+++ b/packages/remix-testing/package.json
@@ -33,7 +33,7 @@
"react": "^17.0.0 || ^18.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix-vercel/package.json b/packages/remix-vercel/package.json
index 35945ec0369..65034792a2a 100644
--- a/packages/remix-vercel/package.json
+++ b/packages/remix-vercel/package.json
@@ -26,7 +26,7 @@
"@vercel/node": "^2.4.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/packages/remix/package.json b/packages/remix/package.json
index 1848c613ba0..c428e71f0dc 100644
--- a/packages/remix/package.json
+++ b/packages/remix/package.json
@@ -17,7 +17,7 @@
"typings": "dist/index.d.ts",
"module": "dist/esm/index.js",
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"files": [
"dist/",
diff --git a/scripts/playground/template/package.json b/scripts/playground/template/package.json
index 69994f4d1e5..15fbaa2101c 100644
--- a/scripts/playground/template/package.json
+++ b/scripts/playground/template/package.json
@@ -50,7 +50,7 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
},
"prisma": {
"seed": "ts-node --require tsconfig-paths/register prisma/seed.ts"
diff --git a/templates/arc/package.json b/templates/arc/package.json
index 08458a6cb79..a8c5cf4d99a 100644
--- a/templates/arc/package.json
+++ b/templates/arc/package.json
@@ -28,6 +28,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/cloudflare-pages/package.json b/templates/cloudflare-pages/package.json
index b5ddd5b0019..f045d35f4d0 100644
--- a/templates/cloudflare-pages/package.json
+++ b/templates/cloudflare-pages/package.json
@@ -28,6 +28,6 @@
"wrangler": "^3.1.1"
},
"engines": {
- "node": ">=16.13.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/cloudflare-workers/package.json b/templates/cloudflare-workers/package.json
index f9b03104ac2..87eb47424f9 100644
--- a/templates/cloudflare-workers/package.json
+++ b/templates/cloudflare-workers/package.json
@@ -28,6 +28,6 @@
"wrangler": "^3.1.1"
},
"engines": {
- "node": ">=16.13.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/deno/package.json b/templates/deno/package.json
index 57a5cf55637..476a4bc088f 100644
--- a/templates/deno/package.json
+++ b/templates/deno/package.json
@@ -26,6 +26,6 @@
"npm-run-all": "^4.1.5"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/express/package.json b/templates/express/package.json
index 4673a493524..b10d7394c90 100644
--- a/templates/express/package.json
+++ b/templates/express/package.json
@@ -34,6 +34,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/fly/package.json b/templates/fly/package.json
index dcae8576ca2..a8b32499405 100644
--- a/templates/fly/package.json
+++ b/templates/fly/package.json
@@ -26,6 +26,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/netlify/package.json b/templates/netlify/package.json
index 16d1d91e585..8c017162d70 100644
--- a/templates/netlify/package.json
+++ b/templates/netlify/package.json
@@ -28,6 +28,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/remix-javascript/package.json b/templates/remix-javascript/package.json
index ded14ca671d..cc03d27a60e 100644
--- a/templates/remix-javascript/package.json
+++ b/templates/remix-javascript/package.json
@@ -21,6 +21,6 @@
"eslint": "^8.38.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/remix/package.json b/templates/remix/package.json
index a3959751ce5..460648b0224 100644
--- a/templates/remix/package.json
+++ b/templates/remix/package.json
@@ -25,6 +25,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}
diff --git a/templates/vercel/package.json b/templates/vercel/package.json
index a9abaec227b..be657ae86a2 100644
--- a/templates/vercel/package.json
+++ b/templates/vercel/package.json
@@ -26,6 +26,6 @@
"typescript": "^5.0.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.0.0"
}
}