Wie bekomme ich Winston zur Arbeit mit Webpack?

8

Ich habe eine Elektronenanwendung, die node.js verwendet. Ich möchte Winston für die Anmeldung der Anwendung verwenden. Ich habe Winston zu meiner package.json Datei hinzugefügt, aber wenn ich den Build-Befehl für Webpack ausführen, bekomme ich einige Warnungen von der colors.js Abhängigkeit in Winston.

%Vor%

Es verweist dann auf winston und colors.js. Das Ignorieren der Warnungen funktioniert nicht, da die Elektronenanwendung eine Ausnahme erhält, wenn sie versucht, einige Dateien von Winston zu laden.

Ich habe etwas über SO und die Github-Site gegraben und sie sagen, dass colors.js einige dynamische require-Anweisungen hat, mit denen webpack Probleme hat. Ich habe auch gesehen, dass andere Beispielprojekte Winston ohne Probleme in ihren Projekten laufen lassen. Kann jemand das winston Protokollpaket mit webpack in einer Elektronenapp korrekt einschließen?

    
Chadley08 15.06.2016, 16:06
quelle

1 Antwort

12

Das Problem ist, dass Webpack die dynamische require-Anweisung in colors.js nicht verarbeiten kann. Sie müssen also Webpack mitteilen, dass Winston eine externe Bibliothek ist.

Hier ist ein Beispiel aus meiner webpack.config.js:

%Vor%

Um den Logger in einer eckigen App mit zwei Elektronen verfügbar zu machen, erstellen Sie eine logger.js-Datei und umschließen Sie sie dann mit einer TypeScript-Datei für den globalen Protokollierungsdienst (d. h. logging.service.ts). Die Datei logger.js erstellt die Logger-Variable mit den gewünschten Winston-Konfigurationseinstellungen.

logger.js:

%Vor%

logging.service.ts:

%Vor%

Jetzt steht der Protokollierungsdienst für die gesamte Anwendung zur Verfügung.

Beispiel:

%Vor%     
BNeunaber 15.06.2016, 16:37
quelle