4.主进程和渲染进程
-- 未经授权禁止转载 --

Electron 中,应用主要被分为两个部分:

主进程(Main Process)和渲染进程(Renderer Process)


主进程负责管理应用生命周期和所有窗口,

而每个打开的网页或 html 文件则运行在一个独立的渲染进程中


主进程

     Electron 启动时会查找 package.jsonmain 字段指定的文件 main.js 作为主进程入口


     主进程可以直接使用 Node.js API

     主进程 main.js 示例:

           import os from 'os'

           console.log(os.version()) //内核版本


渲染进程

     渲染进程通常运行在浏览器环境中,

     受限于安全限制, 渲染进程默认不可以直接使用 Node.js API


     允许在渲染进程中直接使用 Node.js API (不推荐在生产环境中使用)

     const mainWindow = new BrowserWindow({

         webPreferences: {

             nodeIntegration: true,

             contextIsolation: false,

         }

     })


     适用场景:

           需要在渲染进程中直接使用 Node.js API

     注意:

           该配置降低了安全性, 使 Node.js 的全局对象完全对渲染进程开放


     渲染进程 index.js 示例[CJS规范]:

           const os = require('os')

           console.log(os.userInfo()) //当前用户的信息            


     

     webPreferences

           网页偏好设置

     nodeIntegration: true

         允许在渲染进程中直接使用 Node.js API

     contextIsolation: false

         不启用上下文隔离,则Node.js的全局对象(global)和渲染进程的全局对象(window)之间不会实施隔离,

         此时,渲染进程可以直接访问 Node.js API 和加载 Node.js 模块


         上下文隔离是一种安全机制,用于创建一个隔离的环境