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

相关推荐
JarvanMo20 分钟前
Swift 应用在安卓系统上会怎么样?
前端
LinXunFeng33 分钟前
Flutter - 详情页 TabBar 与模块联动?秒了!
前端·flutter·开源
萌萌哒草头将军34 分钟前
Oxc 最新 Transformer Alpha 功能速览! 🚀🚀🚀
前端·javascript·vue.js
Justinc.1 小时前
HTML5新增属性
前端·html·html5
1024小神2 小时前
nextjs项目build导出静态文件
前端·javascript
阿聪_2 小时前
createContext 还是 useSyncExternalStore?一文讲清场景与选型
前端
parade岁月2 小时前
JavaScript 日期的奇妙冒险:当 UTC 遇上 el-date-picker
javascript
Linsk2 小时前
当我把前端条件加载做到极致
前端·前端工程化
_辉2 小时前
大模型构建表单与数据结构
前端
祝鹏2 小时前
动态表单生成
前端