Electron 调用Nodejs系统API提示 Error: module not found:xxx 解决方法

最近使用Electron 调用系统API时 居然提示模块为找到异常, 原因是 在Electron大于20版本时渲染进程系统默认启用了沙盒 sandbox.

当 Electron 中的渲染进程被沙盒化时,它们的行为与常规 Chrome 渲染器一样。 一个沙盒化的渲染器不会有一个 Node.js 环境

所以, 沙盒开启时所有的Node.JS的系统API都不可用.

可通过在 BrowserWindow 构造函数中使用 sandbox: false 选项 或者 nodeIntegration: true 来针对每个进程禁用渲染器沙盒。

javascript 复制代码
app.whenReady().then(() => {
  const win = new BrowserWindow({
    webPreferences: {
      sandbox: false,
      //nodeIntegration: true
    }
  })
  win.loadURL('https://github.com/tekintian')
})

禁用沙盒后就可以调用nodejs的API了.

官方文档 Process Sandboxing | Electron

相关推荐
Swift社区几秒前
跨端路由设计:如何统一 RN 与 Web 的页面模型
前端·react.js·web3
fantasy_arch5 分钟前
SVT-AV1帧类型决策-场景切换检测
前端·网络·av1
LYFlied5 分钟前
前端工程化核心面试题与详解
前端·面试·工程化
小程故事多_8021 分钟前
用Agent与大模型实现Web项目全自动化生成:从需求到部署的完整落地方案
运维·前端·人工智能·自动化·aigc
千里马-horse24 分钟前
AsyncContext
开发语言·前端·javascript·c++·napi·asynccontext
勇往直前plus25 分钟前
Jackson 反序列化首字母大写字段映射失败的底层原因与解决方案
java·开发语言·前端
转转技术团队26 分钟前
基于微前端 qiankun 多实例保活的工程实践
前端·javascript·前端工程化
松涛和鸣26 分钟前
37、UDP网络编程入门
linux·服务器·前端·网络·udp·php
业精于勤的牙29 分钟前
最长特殊序列(一)
java·javascript·数据结构
毕设十刻41 分钟前
基于Vue的新生入学报道管理系统(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js