npm: `npm run dev` is a long-running program

Join the AI Workshop to learn more about AI and how it can be applied to web development. Next cohort February 1st, 2026

The AI-first Web Development BOOTCAMP cohort starts February 24th, 2026. 10 weeks of intensive training and hands-on projects.


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

http://localhost:3000

and

http://localhost:3001

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.

Lessons in this unit:

0: Introduction
1: How to use or execute a package installed using npm
2: npm dependencies and devDependencies
3: How to fix the "Missing write access" error when using npm
4: npm can install packages in the parent folder
5: Install an older version of an npm package
6: Find the installed version of an npm package
7: How to test an npm package locally
8: npm global or local packages
9: What are peer dependencies in a Node module?
10: ▶︎ `npm run dev` is a long-running program
11: Semantic Versioning using npm
12: Uninstalling npm packages with `npm uninstall`
13: An introduction to the npm package manager
14: The npx Node Package Runner
15: The package.json guide
16: The package-lock.json file
17: What is pnpm?
18: Should you commit the node_modules folder to Git?
19: Update all the Node dependencies to their latest version
20: Where does npm install the packages?
21: Bumping Node.js dependencies
22: Run package.json scripts upon any file changes in a folder