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

相关推荐
用泥种荷花17 分钟前
【前端学习AI】Python环境搭建
前端
老华带你飞19 分钟前
考试管理系统|基于java+ vue考试管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
_Kayo_26 分钟前
React上绑定全局方法
前端·javascript·react.js
愈努力俞幸运38 分钟前
chrome 扩展(插件)开发入门教程
前端·chrome
练习前端两年半1 小时前
【Vue3 高级技巧】函数重载+Watch:打造类型安全的通用事件监听 Hook
前端·javascript·vue.js
一只小鸟儿1 小时前
门户短信发送验证码及验证功能
前端·javascript·jquery
elangyipi1231 小时前
pnpm :下一代包管理工具的原理与实践
前端·npm
代码的奴隶(艾伦·耶格尔)1 小时前
Sentinel限流熔断
java·前端·sentinel
talenteddriver1 小时前
mysql: MySQL中between子句和limit子句的区别
前端·javascript·数据库
A24207349302 小时前
深入浅出理解AJAX:核心原理与POST/GET区别详解
前端·ajax·okhttp