Skip to content

区分前端代码运行环境

开发electron应用时, 我们通常希望将现有的前端代码直接打包发布成桌面应用, 但是web应用和桌面应用的样式和功能还是有些许区别, 因此我们需要在一些代码中区分运行环境。

javascript
 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 false
    if (
      typeof navigator === 'object' &&
      typeof navigator.userAgent === 'string' &&
      navigator.userAgent.indexOf('Electron') >= 0
    ) {
      return true
    }

    return false
 }

上次更新于: