Solve - Missing script: "watch" npm error

avatar

Borislav Hadzhiev

Tue Mar 29 20222 min read

banner

Photo by Alexa Suter

Solve - Missing script: "watch" npm error #

The 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

To solve the 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 ran 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, you have to 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 are able to 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
Use the search field on my Home Page to filter through my more than 1,000 articles.