Электрон: разница между process.defaultApp и app.isPackaged - PullRequest
1 голос
/ 01 октября 2019

В чем разница между электроном флагами process.defaultApp и app.isPackaged? Оба используются, чтобы различать dev и производственную среду. Мое наблюдение таково, что Boolean(process.defaultApp) == !app.isPackaged всегда. Есть ли случаи, когда оба true или оба false?

Из документа и кода:

process.defaultApp

БулевоКогда приложение запускается путем передачи в качестве параметра в приложение по умолчанию, это свойство имеет значение true в основном процессе, в противном случае оно не определено.

app.isPackaged

Логическое свойство, которое возвращает значение true, еслиприложение упаковано, иначе ложно. Для многих приложений это свойство можно использовать для различения сред разработки и производства.

Из кода - app.isPackaged устанавливается, если exec-файл не равен electron или electron.exe.

Примечание: я знаю небольшую разницу в том, что process.defaultApp может использоваться только в основном процессе.

1 Ответ

2 голосов
/ 01 октября 2019

Оба могут дать один и тот же результат, но для свойства process.defaultApp необходимо проявить особую осторожность:

  • обрабатывать случай, когда оно равно undefined (используя !например, оператор)
  • использовать remote.process вместо процесс в процессе визуализации

Основной процесс

var isPackaged = !process.defaultApp;

эквивалентен:

var isPackaged = require('electron').app.isPackaged;

Процесс визуализации

var isPackaged = !require('electron').remote.process.defaultApp;

эквивалентен:

var isPackaged = require('electron').remote.app.isPackaged;

Редактировать :

Некоторая дополнительная информация, хотя и не на 100% кристально ясная, о том, почему нужно было добавить свойство app.isPackaged, можно найти в обсуждении связанного запроса на извлечение: add app.isPackaged # 12656

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...