我决定尝试使用npm脚本作为构建工具,到目前为止我喜欢它.我想解决的一个问题是当运行脚本运行jshint时,当某些东西没有通过linting时,我得到了大量的"npm ERR!" 线.我想压制这些因为linter的输出更有意义.
有没有一种很好的方法来全局设置它,有没有办法为每个脚本运行设置它?
您可以通过silent
以下几种方式将日志级别设置为抑制整体npm的输出来解决此问题:
在每次npm run
调用时:
npm run --silent
或者通过以下方式创建.npmrc
文件(此文件可以在项目目录或主文件夹中)全局:
loglevel=silent
资源:
npm日志级别配置:https://docs.npmjs.com/misc/config#loglevel
npmrc:https://docs.npmjs.com/misc/config#loglevel
我用来解决某些脚本(例如linting)上的这个问题的一个简单技巧是|| true
在这些脚本的末尾附加.这将在没有任何npm配置更改的情况下工作.
这将确保脚本始终以0
状态退出.这使得npm认为脚本成功,因此隐藏了ERR
消息.如果你想更明确,你可以|| exit 0
改为追加,它应该达到相同的结果.
{ "scripts": { "lint": "jshint || true", } }
您应该能够同时使用--quiet
和--silent
选项,如
npm install --quiet
--quiet
将显示stderr和警告,--silent
应该压制几乎所有的东西
您也可以发送stdout/stderr /dev/null
,如下所示:
npm install > "/dev/null" 2>&1
或者更简洁
npm install &> /dev/null
npm install --quiet --no-progress
将保留警告和错误,并在支持它的终端上取消ADHD进度栏。