个性化阅读
专注于IT技术分析

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

本文概述

借助当今所有可用的框架(如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");
}

有关此模块的更多信息, 请访问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");
}

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

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何检查你的代码是否正在Electron或浏览器中执行

评论 抢沙发

评论前必须登录!