防止NodeJS npm在检索包时打印详细信息
使用节点npm模块( https://www.npmjs.org/api/npm.html ),我想检索一个包,但没有打印结果到控制台。 设置loglevel沉默似乎没有帮助。
var npm = require('npm'); npm.load(function (er, npm) { // use the npm object, now that it's loaded. npm.config.set('loglevel', 'silent'); npm.commands.view(["<package>@<version>"],function(err, npmBody) { //at this point it is always logging npmBody contents to console! }); });
这不能没有劫持stdout
。 请参阅: https : //github.com/npm/npm/blob/master/lib/install.js#L100
这是固定的一次,但后来恢复。 看来, npm
不是被devise为以编程方式使用。
通过“劫持stdout
”我的意思是这样的:
console.log('Begin'); console._stdout = { write : function () {} }; externalFn(); console._stdout = process.stdout; console.log('End'); function externalFn () { console.log('Annoying stuff'); }