Как проверить, выполняется ли ваш код в Electron или в браузере

Благодаря всем доступным на сегодняшний день фреймворкам, таким как ReactJS, AngularJS и т. Д., Процесс разработки ускоряется и оптимизируется, как никогда ранее, для повышения производительности веб-приложений. Благодаря Electron вы можете упаковать такие веб-приложения в настольное приложение. К сожалению, такие функции, как «горячая перезагрузка», недоступны в Electron, недоступны, поэтому вам иногда захочется работать непосредственно в браузере, как всегда с веб-приложением. Это приводит к базовой необходимости: знать, когда вы работаете в электронном браузере или в браузере с JavaScript, чтобы выполнить некоторый код на каждой платформе, так как вам не хотелось бы поддерживать две базы кода.

К счастью, узнать, когда вы находитесь внутри Electron или Browser, довольно легко, и мы покажем вам, как этого добиться в этой статье.

A. Установите модуль isElectron

isElectron Модуль — это небольшая утилита, которая позволяет узнать, когда вы находитесь на платформе Electron или в обычном браузере. Установите этот модуль, перейдя в каталог вашего проекта с терминалом и выполнив следующую команду:

npm install --save is-electron

После установки вы сможете потребовать is-electron модуль в любом месте и проверьте, какую платформу вы используете:

let isElectron = require("is-electron");
if(isElectron()){
console.log("Electron aww yeahhh !");
}else{
console.log("Running in other platform as a normal browser");
}

Для получения дополнительной информации об этом модуле, пожалуйста, посетите официальный репозиторий на Github здесь.

B. Используйте функцию isElectron

Если вы не желаете устанавливать модуль для функции, которая предлагает isElectron модуль, вы можете просто использовать его и включить в свой собственный код:

function isElectron() {
// Renderer process
if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {
return true;
}
// Main process
if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {
return true;
}
// Detect the user agent when the `nodeIntegration` option is set to true
if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {
return true;
}
return false;
}

И используйте его так же, как модуль:

if(isElectron()){
console.log("Electron aww yeahhh !");
}else{
console.log("Running in other platform as a normal browser");
}

Оба способа работают в процессе Renderer и в главном процессе. Функция и модуль были написаны @cheton.

Ссылка на основную публикацию
Adblock
detector