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'