Fix: DrizzleORM could not resolve peer dependency error with NextJS 14

Fix: DrizzleORM could not resolve peer dependency error with NextJS 14

My best guess is you're reading this because you saw it too: the peer dependency error in your terminal while installing drizzle-orm in your Next.js 14 application. Let's fix it.

A Peek at the error

Here's a clipped view of my setup package.json:

"dependencies": {
    ...
    "next": "14.2.4",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
  },

When I run npm install drizzle-orm I get slammed with a conflicting peer dependency error. Here’s what it looks like;

❯ npm install drizzle-orm
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: xxx@0.1.0
npm ERR! Found: react@18.3.1
npm ERR! node_modules/react
npm ERR!   peer react@">=18 || >=19.0.0-beta" from @clerk/clerk-react@5.2.7
npm ERR!   node_modules/@clerk/clerk-react
[...]
npm ERR! Could not resolve dependency:
npm ERR! drizzle-orm@"*" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: react@18.2.0
npm ERR! node_modules/react
npm ERR!   peer react@"18.2.0" from react-native@0.74.3
npm ERR!   node_modules/react-native
[...]
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

Translating to human speak:

While resolving xxx@0.1.0, I found react@18.3.1

npm ERR! While resolving: xxx@0.1.0
npm ERR! Found: react@18.3.1

However, I can't resolve drizzle-orm@"*" from the root project because I need react@18.2.0 and it conflicts with the react@18.3.1 I found earlier.

npm ERR! Could not resolve dependency:
npm ERR! drizzle-orm@"*" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: react@18.2.0

The Fix

I found that updating all the dependencies fixed the issue.

Step 1: Update the dependencies

Run the following command to update all existing dependencies listed in your package.json file to their latest compatible versions;

npm update --save
npm update --save-dev

Step 2: Install drizzle-orm

Finally, install the drizzle-orm package as a dependency:

npm install --save drizzle-orm

That should fix it!

Readings