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

相关推荐
Aerelin2 小时前
爬虫playwright中的等待机制
前端·爬虫·python
慧慧吖@2 小时前
关于在本地去模拟生产环境检测页面内容注意事项
前端·javascript·vue.js
码农很忙2 小时前
用SpreadJS实现分权限管理:前端技术栈的精准控制实践
前端
黄团团2 小时前
Vue2整合Electron开发桌面级应用以及打包发布(提供Gitee源码)
前端·javascript·vue.js·elementui·electron
勇气要爆发3 小时前
问:LocalStorage、Vuex、Pinia的区别和本质
前端
Aerelin3 小时前
iframe讲解(爬虫playwright的特殊应用)
前端·爬虫·python·html
Drift_Dream3 小时前
IntersectionObserver:现代Web开发的交叉观察者
前端
9***P3343 小时前
前端错误监控工具
前端
东东2333 小时前
GeoJSON 介绍:Web 地图数据的通用语言
前端·javascript·json
之恒君3 小时前
Promise.resolve(x) 等同 new Promise(resolve => resolve(x))?
前端·promise