Electon опционально загружает «электронный отладчик» в производственное приложение - PullRequest
0 голосов
/ 21 декабря 2018

Я обнаружил, что этот плагин предлагает мне несколько полезных утилит, но я не хочу использовать его в качестве производственной зависимости, поэтому я установил его как:

npm install --save-dev electron-debug

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

require('electron-debug')();

Так, как я могу «опционально» загрузить его и тихо подавить любую ошибку и продолжить без какой-либомного проблем?

Также упоминается здесь :

Работает только в процессе разработки, если не отменено включенной опцией.

Но если я использую --save вместо --save-dev, я предполагаю, что зависимость будет установлена ​​и на моем производственном приложении, зависимость, которая используется только для отладки, и это вроде как отстой.

1 Ответ

0 голосов
/ 21 декабря 2018

Ваше предположение, что оно не будет включено в вашу производственную сборку, верно.Таким образом, вам нужен способ узнать, доступен ли модуль.

В этот ответ Stijn de Witt представляет способ сделать это:

// See https://stackoverflow.com/a/33067955, by Stijn de Witt
function moduleAvailable (name) {
    try {
        require.resolve (name);
        return true;
    } catch (e) {
        // empty
    }

    return false;
}

// Query for your particular module
if (moduleAvailable ("electron-debug")) require ("electron-debug") ();

Я не слишком уверен в этом, но есть вероятность, что он также работает с пакетными (например, electron-packager) сборками вашего приложения.

...