2012-09-13 60 views
0

有没有蚂蚁的方式我可以使由我包含的模块引起的警告消息无声?nodejs模块有警告信息

我喜欢的模块,但每次我打电话的功能,控制台输出:

"Utf8String" type is deprecated, use "CString" instead 

我想提出一个控制台应用程序,所以宁愿surpress此消息。

+0

嗯,你在用什么“模块”? – Neal

+0

它有所作为吗?我正在使用'execSync'。 –

回答

0

在这种情况下,我需要一个模块所需的模块,它具有使用Utf8String并触发错误的自定义代码。

// alias Utf8String 
var utfstringwarned = false 
Object.defineProperty(types, 'Utf8String', { 
    enumerable: false 
    , configurable: true 
    , get: function() { 
     if (!utfstringwarned) { 
     utfstringwarned = true 
     console.error('"Utf8String" type is deprecated, use "CString" instead') 
     } 
     return types.CString 
    } 
}) 

而且在历史

0.0.20/2012-06-27 
=================== 

- rename the `Utf8String` type to `CString` (#5) 
- make `Utf8String` an alias to `CString` and deprecated 
- more work on docs (not yet ready) 

写了关于它所以,作为一个临时的解决方案,我可能注释掉的错误信息,或者作为一个长期的解决办法,选择不同的模块。

0

您收到的警告消息实际上来自节点而不是模块。 但是,该模块导致警告,因为它调用了之前版本节点中使用的api。

我不认为有反正告诉节点抑制警告消息记录到控制台。

如果你真的确定要摆脱这些警告,你可以进入模块的源代码并做一个查找和替换。

"Utf8String" to "CString" 

我做了另一个模块完全相同的东西,我无法忍受这些消息。

+0

因此......如果我升级节点(或任何安装我的软件包的人),那么我可能会通过添加与程序无关的错误消息来破坏我的所有程序。这对我来说似乎是个大问题。我很惊讶没有办法抑制节点警告。你确定? –

+0

是的,当任何节点升级时,其某些api被删除或重命名。为鼓励模块作者切换到新的api节点,尝试提供帮助,并将警告消息记录到控制台。我很确定没有办法来抑制这些信息,但不是100%。 – saeed

+0

原来这个警告来自模块,这可能是为什么它是非特定的! –