[英]How to suppress npm WARN deprecated messages in bash
I have several version of node.js
installed in Linux Mint 18.0.我在 Linux Mint 18.0 中安装了多个版本的node.js
I manage them using nvm
.我使用nvm
管理它们。 Because of a project dependency, I need to have version 0.10 as the default version ( nvm use 0.10
).由于项目依赖性,我需要将版本 0.10 作为默认版本( nvm use 0.10
)。 As a result of this, every time I start my terminal, I get the following output:因此,每次启动终端时,都会得到以下输出:
npm WARN deprecated This version of npm lacks support for important features,
npm WARN deprecated such as scoped packages, offered by the primary npm
npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
npm WARN deprecated latest stable version. To upgrade to npm@2, run:
npm WARN deprecated
npm WARN deprecated npm -g install npm@latest-2
npm WARN deprecated
npm WARN deprecated To upgrade to the latest stable version, run:
npm WARN deprecated
npm WARN deprecated npm -g install npm@latest
npm WARN deprecated
npm WARN deprecated (Depending on how Node.js was installed on your system, you
npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
npm WARN deprecated on Windows, run them from an Administrator prompt.)
npm WARN deprecated
npm WARN deprecated If you're running the version of npm bundled with
npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
npm WARN deprecated will be bundled with a version of npm@2, which has some small
npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
npm WARN deprecated semver behavior.
How do I suppress these messages?如何抑制这些消息?
You can suppress or quieten NPM via an environment variable:您可以通过环境变量抑制或静默 NPM:
npm_config_loglevel=silent npm version
This should work in your .bashrc
(or wherever you invoke nvm
):这应该适用于您的.bashrc
(或您调用nvm
任何地方):
npm_config_loglevel=silent nvm use 0.10
Or you can set the environment variable globally或者你可以全局设置环境变量
export npm_config_loglevel=silent
Different loglevels can be found here - they are:可以在此处找到不同的日志级别 - 它们是:
"silent", "error", "warn", "http", "info", "verbose", "silly" “无声”、“错误”、“警告”、“http”、“信息”、“详细”、“愚蠢”
You can also add .npmrc file in your project, user directory or globally.您还可以在您的项目、用户目录或全局中添加 .npmrc 文件。 The four relevant files are:四个相关文件是:
Example:示例:
prefix=~/.npm-global
loglevel=error
You can do this inside your script by removing the event listeners您可以通过删除事件侦听器在脚本中执行此操作
#!/usr/bin/env node
process.removeAllListeners('warning');
// Do your thang without triggering warnings
All credit to Sam Roberts: https://github.com/nodejs/node/issues/32876#issuecomment-616709931所有功劳归功于 Sam Roberts: https : //github.com/nodejs/node/issues/32876#issuecomment-616709931
Update 2021: 2021 年更新:
(My problem was not an npm WARN deprecated
message but an npm WARN npm
message, but this still applies) (我的问题不是npm WARN deprecated
消息,而是npm WARN npm
消息,但这仍然适用)
I use npm
v8 on Ubuntu, and I also use nvm
v0.33.11.我在 Ubuntu 上使用npm
v8,我也使用nvm
v0.33.11。 For personal reasons I have to use node
14 instead of the current version, node 16.出于个人原因,我必须使用node
14 而不是当前版本节点 16。
My solution to suppress this:我的解决方案来抑制这个:
npm WARN npm npm does not support Node.js v14.4.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm cannot make any promises that npm will work with this version.
npm WARN npm You can find the latest version at https://nodejs.org/
In file $HOME/.nvm/nvm.sh
在文件$HOME/.nvm/nvm.sh
in line ~ 2155 I change this在行 ~ 2155 我改变这个
NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)"
to this对此
NVM_NPM_PREFIX="$(npm config --loglevel=silent get prefix)"
In addition (perhaps this is optional), I've also changed $HOME/.nvm/.npmrc
where I've added this line另外(也许这是可选的),我还更改了$HOME/.nvm/.npmrc
在我添加这一行的地方
loglevel=silent
as proposed in other answers here in this SO post.正如在此 SO 帖子中的其他答案中所提出的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.