How to suppress output when running npm scripts

All scripts:

You can fix this by suppressing the output of npm overall, by setting the log level to silent in a couple ways:

On each npm run invocation:

npm run --silent <your-script>

Or globally by creating a .npmrc file(this file can be either in your project directory or your home folder) with the following:

loglevel=silent

Resources:

npm log level config: https://docs.npmjs.com/misc/config#loglevel

npmrc: https://docs.npmjs.com/misc/config#loglevel

Each script, individually:

A simple trick I've used to get around this issue on certain scripts like linting is to append || true at the end of such scripts. This will work without any npm config changes.

This will ensure that the script will always exit with a 0 status. This tricks npm into thinking the script succeed, hence hiding the ERR messages. If you want to be more explicit, you can append || exit 0 instead and it should achieve the same result.

{
  "scripts": {
    "lint": "jshint || true",
   }
}

npm install --quiet --no-progress 

Will keep warnings and errors, and suppress the ADHD progress bar on terminals that support it.


You should be able to use both the --quiet and --silent options, as in

npm install --quiet

--quiet will show stderr and warnings, --silent should suppress nearly everything

You can also send stdout/stderr to /dev/null, like so:

npm install > '/dev/null' 2>&1

or less versbose

npm install &> '/dev/null'

Tags:

Node.Js

Npm