`npm run dev` is a long-running program
I got asked this question:
Each time I run
npm run dev
I get a different localhost port. First it was 3000. Then I ran it again and got port 3001. Then I ran it again and got port 3002. How do we force it to use port 3000?
When working on a website locally, you use the command npm run dev
to start the development server.
This is a common practice in Web Development, and all tools seem to converge to this program, for example Astro and Next.js and many others.
Each time you run this command, it’s a long-running process. It does not end automatically
For example you run the Astro dev server, and it starts listening on port 3000
:
Then you open another terminal and you run npm run dev
again, this time you got the server running on port 3001
:
So now you have the same app running on
and
You need to terminate both processes typing ctrl-c
in your keyboard while in the terminal, so no process is keeping the 3000
port busy, and nothing appears in the browser when you try to open http://localhost:3000
Then you can run npm run dev
again and it will automatically start on port 3000
, because that’s free.
Any time you make a change in your project (for example because you have to npm install
some package) you’re going to terminate the dev server with ctrl-c
, then you start it again.
→ I wrote 17 books to help you become a better developer:
- C Handbook
- Command Line Handbook
- CSS Handbook
- Express Handbook
- Git Cheat Sheet
- Go Handbook
- HTML Handbook
- JS Handbook
- Laravel Handbook
- Next.js Handbook
- Node.js Handbook
- PHP Handbook
- Python Handbook
- React Handbook
- SQL Handbook
- Svelte Handbook
- Swift Handbook
Also, JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025