Подтвердить что ты не робот

Как подавить вывод при запуске npm-скриптов

Я решил поэкспериментировать с сценариями npm в качестве инструмента построения и до сих пор мне это нравится. Одна проблема, которую я хотел бы решить, - это запустить script, чтобы запустить jshint, когда что-то не проходит, я получаю тонну "npm ERR!". линий. Я хотел бы подавить их, поскольку вывод из linter более значим.

Есть ли хороший способ установить это глобально и есть ли способ установить его для каждого запуска script?

4b9b3361

Ответ 1

Все сценарии:

Вы можете исправить это, подавив вывод npm в целом, установив уровень журнала на silent несколькими способами:

При каждом вызове npm run:

npm run --silent <your-script>

Или глобально, создав файл .npmrc (этот файл может быть либо в каталоге проекта, либо в домашней папке) со следующим:

loglevel=silent

Ресурсы

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

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

Каждый script, индивидуально:

Простой трюк, который я использовал, чтобы обойти эту проблему на некоторых сценариях, таких как linting, - добавить || true в конце таких скриптов. Это будет работать без каких-либо изменений конфигурации npm.

Это гарантирует, что script всегда будет работать с статусом 0. Это позволяет npm считать, что script преуспевает, поэтому скрывает сообщения ERR. Если вы хотите быть более явным, вы можете добавить || exit 0 вместо этого, и он должен достичь того же результата.

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

Ответ 2

Вы должны иметь возможность использовать --quiet и --silent, как в

npm install --quiet

--quiet покажет stderr и предупреждения, --silent должен подавить почти все

Вы также можете отправить stdout/stderr в /dev/null следующим образом:

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

или менее разносторонний

npm install &> /dev/null

Ответ 3

npm install --quiet --no-progress 

Будет хранить предупреждения и ошибки, а также подавлять индикатор выполнения ADHD на терминалах, которые его поддерживают.