我目前正在開發一個 node js cli 工具來做一些隨機的作業。到目前為止,我的整個應用程式都被設計為一個 cli,沒有任何意圖在其他地方使用它的功能。
現在我的一些同事喜歡使用 ui 而不是 cli,所以我決定圍繞它構建一個 vue web 應用程式。到目前為止,一切都很好。
現在我的問題是:我用console.logs 和cliui、chalk、inquirer 等包粘貼了我的所有功能。當在vue 應用程式中用作模塊時,這顯然沒有意義。
我的問題是:如何僅在通過 cli 使用時記錄單個函式的輸出?
我的一個想法是在我的命令函式中設定某種 falgg 以便行程知道我在終端中并檢查每個 console.log 是否設定了該標志。但這似乎是很多作業,我想知道是否有更好的方法。
uj5u.com熱心網友回復:
我強烈建議使用一些日志庫,例如winston。在那里,您可以定義多個所謂的傳輸,它們負責將日志寫入相應的指定位置(例如檔案、資料庫或只是控制臺)。然后僅通過此庫進行所有日志記錄。
因此,您將在應用程式的最開始有一個點,您可以在其中定義是否激活到控制臺的傳輸...
uj5u.com熱心網友回復:
一種解決方案可能是使用 Winston 之類的東西作為您的記錄器。這可能是一個非常簡單快捷的“搜索和替換”,用于將“控制臺”替換為“溫斯頓”。當你啟動應用程式時,設定日志級別,你就設定好了
const winston = require('winston');
winston.level = 'debug';
winston.log('debug', 'default logger being used');
uj5u.com熱心網友回復:
我不太精通 NodeJS,但我可以建議的是每個方法中的“保護子句”,它具有 CLI 輸出和某種isCLI布爾標志作為操作該子句的可選引數。
這可能很難看,所以另一種方法是分離 CLI 輸出,并為 CLI 設定一個--verbose標志或類似的東西,以便在您想查看所述輸出時使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522090.html
上一篇:如何使用回呼函式實作無限柯里化總和值并使用TypeScript?
下一篇:如何合并打字稿中的許多泛型?
