防止 npm API 调用输出错误

Prevent npm API call from outputting errors

我正在使用 npm API 来检测用户系统上全局安装的包,这样我就可以加载我的 CLI 程序的扩展。

不幸的是,当下面的代码运行时,npm 会向我的控制台发送大量 npm WARN unmet dependency 消息。 是否可以避免这种情况?

var npm = require('npm'),
    _ = require('lodash');

npm.load([], function(){
  npm.config.set('global', true);
  npm.commands.list(['--depth=0'], true, function(err, pkg){
    console.log(_.keys(pkg._dependencies).join('\n'));
  });
});

我试过 npm.config.set('loglevel','silent')npm.config.set('logstream',null);两者都没有任何效果。

不使用 npm api,您可以只调用 npm 命令吗?

npm list -g --json --silent --depth 1

生成一个 json 格式的全局模块列表,没有输出到 stderr。