2012-09-13 61 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

原來這個警告來自模塊,這可能是爲什麼它是非特定的! –