DEV Community

Ajeet Singh Raina
Ajeet Singh Raina

Posted on

"sh: next: command not found" in Next.js Development? Here's the Fix!

Ever run npm run dev in your Next.js project only to be greeted by the confusing sh: next: command not found error? Don't worry, this is a common hurdle faced by developers, and it's easily fixable.

This error pops up because the next command isn't recognized by your terminal. It could be due to two reasons:

  • Next.js Installed Locally: Most likely, Next.js is installed as a project dependency, not globally on your system.
  • Missing Script: Your package.json might be missing the script that triggers the next dev command.

Let's explore solutions for both scenarios:

Solution 1: Running Next.js Locally

If you prefer to keep Next.js specific to your project, follow these steps:

1. Utilize the Full Command

Since Next.js is a local dependency, you can directly run the development server using the full command:

npm run dev
Enter fullscreen mode Exit fullscreen mode

This should trigger the script defined in your package.json (assuming it includes next dev).

2. Verify package.json Script:

Open your project's package.json and check for the "scripts" section. Make sure it contains the following script:

JSON
"scripts": {
  "dev": "next dev"
}
Enter fullscreen mode Exit fullscreen mode

If missing, add this script and try npm run dev again.

Solution 2: Installing Next.js Globally (Optional)

This approach allows you to use next commands from any directory in your terminal. However, it's generally recommended to keep Next.js local to avoid version conflicts with other projects. Here's how to do it (use with caution):

Global Installation:

npm install -g next
Enter fullscreen mode Exit fullscreen mode

This installs Next.js globally on your system.

Run Next.js Commands:

Now you can directly use commands like next dev or next build from any directory.

By following these solutions, you should be able to resolve the "sh: next: command not found" error and successfully launch your Next.js development server. Remember, keeping Next.js local is preferred for better project isolation.

Happy Coding!

Top comments (1)

Collapse
 
surjoyday_kt profile image
Surjoyday Talukdar

I recommend following the steps below, as suggested by timneutkens in the Next.js GitHub issue #8945. Installing Next.js globally can cause multiple issues when deploying to production.

Steps to Fix:

  1. In your terminal type:
    nano ~/.zshrc

  2. Scroll to the very end of the .zshrc file and add the following lines to include the locally installed node_modules/.bin directory in your PATH:

export PATH="./node_modules/.bin:$PATH"

Save and exit the file:

  • Press CTRL + X to exit.
  • Press Y to confirm saving.
  • Press Enter to save the changes.
  1. Apply the changes by running: source ~/.zshrc

This ensures that your locally installed dependencies are prioritized without requiring a global installation of Next.js.