Как мне реализовать подробное ведение журнала в пакете npm? - PullRequest
0 голосов
/ 21 ноября 2018

Я создал пакет npm (для внутреннего использования), который можно использовать следующим образом.Обратите внимание на параметр verboseLogging.

import * as q from 'q'

var client = q.createClient({verboseLogging: true})

Я реализовал verboseLogging как множество console.log(...) операторов.

Это хорошо работает, когда потребителем пакета является приложение командной строки NodeJS, но не так хорошо, когда потребителем пакета является браузер.

Когда я использую этот пакет в браузереприложение, мне нужно было сделать что-то вроде следующего, чтобы отобразить журналы для пользователя:

const originalConsoleLog = console.log;

console.log = function() {
    // extract log message and save somewhere to be shown in DOM
    originalConsoleLog.apply(this, arguments)
}

Может быть, есть лучший способ включить ведение журнала в пакете npm, который доступен для обоих приложений командной строкии браузерные приложения?

1 Ответ

0 голосов
/ 21 ноября 2018

Одним из возможных решений является проверка, определена ли window переменная id.Поскольку он отображается только в браузере, вы можете попробовать что-то вроде этого:

if (typeof window === 'undefined') {
    // we're server side, let console.log as is
} else {
    // browser environment, DOM is accessible, additional logging goes here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...