如何检查你的代码是否正在Electron或浏览器中执行

本文概述

  • A.安装isElectron模块
  • B.使用isElectron函数
借助当今所有可用的框架(如ReactJS, AngularJS等), 开发过程将加快并优化Web应用程序的性能, 从而实现优化。感谢Electron, 你可以将此类Web应用程序打包在桌面应用程序中。遗憾的是, Electron中没有热重装等功能, 因此你有时希望像直接使用Web应用一样直接在浏览器中工作。这导致了基本的必要性, 即知道你是在电子设备中还是在带有JavaScript的浏览器中时, 都可以在每个平台上执行一些代码, 因为你不想维护2个代码库。
幸运的是, 很容易知道何时进入Electron或浏览器, 我们将在本文中向你展示如何实现。
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"); }

【如何检查你的代码是否正在Electron或浏览器中执行】有关此模块的更多信息, 请访问Github上的官方存储库。
B.使用isElectron函数如果你不愿意为提供isElectron模块的功能安装模块, 则可以简单地使用它并将其包含在自己的代码中:
function isElectron() {// Renderer processif (typeof window !== 'undefined' & & typeof window.process === 'object' & & window.process.type === 'renderer') {return true; }// Main processif (typeof process !== 'undefined' & & typeof process.versions === 'object' & & !!process.versions.electron) {return true; }// Detect the user agent when the `nodeIntegration` option is set to trueif (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"); }

两种方式都可以在” 渲染器” 过程和” 主要” 过程中使用。函数和模块由@cheton编写。
编码愉快!

    推荐阅读