Я решил поэкспериментировать со скриптами npm в качестве инструмента сборки, и пока мне это нравится. Одна проблема, которую я хотел бы решить, заключается в том, что при запуске сценария для запуска jshint, когда что-то не проходит линтинг, я получаю тонну "npm ERR!" линий. Я хотел бы подавить их, так как вывод линтера более значим.
Есть ли хороший способ установить это глобально и есть ли способ установить его для каждого запуска скрипта?
Ответы:
Все скрипты:
Вы можете исправить это, подавив вывод npm в целом, установив уровень журнала
silent
двумя способами:При каждом
npm run
вызове:Или глобально, создав
.npmrc
файл (этот файл может находиться либо в каталоге вашего проекта, либо в вашей домашней папке) со следующим:Ресурсы:
Конфигурация уровня журнала npm: https://docs.npmjs.com/misc/config#loglevel
npmrc: https://docs.npmjs.com/misc/config#loglevel
Каждый сценарий индивидуально:
Простая уловка, которую я использовал для решения этой проблемы в некоторых сценариях, таких как линтинг, - это добавлять
|| true
в конец таких сценариев. Это будет работать без каких-либо изменений конфигурации npm.Это гарантирует, что сценарий всегда будет выходить со
0
статусом. Это заставляет npm думать, что сценарий выполнен успешно, и, следовательно, скрываетERR
сообщения. Если вы хотите быть более явным, вы можете добавить|| exit 0
вместо этого, и это должно привести к тому же результату.{ "scripts": { "lint": "jshint || true", } }
источник
|| true
; это не лучшее решение. Я не хочу отключать ВСЕ другие команды, использующие.npmrc
. И запускать этот конкретный скрипт-s
постоянно, тоже кажется очень глупым. Кто-нибудь нашел лучшее решение для отключения звука одного скрипта?Вы должны иметь возможность использовать параметры
--quiet
и--silent
, как в--quiet
покажет stderr и предупреждения,--silent
должен подавить почти всеВы также можете отправить stdout / stderr
/dev/null
, например:npm install > "/dev/null" 2>&1
или менее Versbose
npm install &> /dev/null
источник
Сохраняет предупреждения и ошибки и подавляет индикатор выполнения ADHD на поддерживающих его терминалах.
источник
Вы можете сделать это внутри своего скрипта, удалив слушателей событий
#!/usr/bin/env node process.removeAllListeners('warning'); // Do your thang without triggering warnings
источник