npm ERR! Missing script: "watch" [Solved]

avatar

Borislav Hadzhiev

Last updated: Sep 10, 2022

banner

Photo from Unsplash

npm ERR! Missing script: "watch" [Solved] #

The npm ERR! Missing script: "watch" error occurs for multiple reasons:

  1. Missing a watch script in the scripts section of your package.json file.
  2. Opening your IDE or shell in a directory that doesn't contain your package.json file.
  3. Not having initialized a package.json file for your project.
  4. Having multiple scripts objects in your package.json file.

npm missing script watch

shell
npm ERR! Missing script: "watch" npm ERR! npm ERR! To see a list of scripts, run: npm ERR! npm run

To solve the npm ERR! Missing script: "watch" error, make sure to add a watch command to the scripts object in your package.json file and open your shell or IDE in the root directory of your project before running the npm run watch command.

First, make sure your package.json file has a watch command in the scripts object.

package.json
{ "scripts": { "watch": "webpack --watch --progress" } }

The watch command in your package.json file depends on your setup and the environment your code is run in.

If the command is named something else in your package.json file, you either have to rename it to watch, or run the command with its specified name, e.g. npm run start.

package json scripts section

If you have a watch command in the scripts object in your package.json file, make sure you are opening your IDE and shell in the root directory of your project.

You should open your IDE or shell in the directory where your package.json file is to be able to run the npm run watch command.

If you try to run the command from a different directory, it won't find your package.json file and the Missing script: "watch" npm error is caused.

If you don't have a package.json file, create one by opening your terminal in your project's root directory and running the command npm init -y.

shell
npm init -y

Make sure to install all of the third-party packages your project uses after creating your package.json file.

Now you can add a watch command in the scripts object of your package.json file.

package.json
{ "scripts": { "watch": "webpack --watch --progress" } }
Another cause of the error is having multiple scripts objects in your package.json file.

This causes the error because the second scripts object overrides the first, and your watch command might only be present in your first scripts object.

If you don't want to add a watch command to the scripts in your package.json file, you can run the command directly from your shell (assuming you have the specific package installed globally).

shell
webpack --watch --progress

Conclusion #

To solve the npm ERR! Missing script: "watch" error, make sure to add a watch command to the scripts object in your package.json file and open your shell or IDE in the root directory of your project before running the npm run watch command.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.