electron中在预处理文件中提示 module not found: fs?

如下面,我预处理加载了一个preload.js文件,里面就是加载fs用了一下,但运行总是提示没有发现fs.
image.png
image.png
image.png

阅读 7k
3 个回答

只有 NodeJS 内才有这个模块,浏览器端是没有 Node 环境的,也就是说浏览器是没有 FS 模块的。如果你想要直接在浏览器中使用是不行的。

如果想要在 Electron 项目内使用的话,需要开启 Node 支持(默认是关闭的),也就是说要修改 main.js 的配置项:

// main.js
...
function createWindow () {
  win = new BrowserWindow({
   ....
   webPreferences: {
    nodeIntegration: true
   }
   ...
  }
}

具体可以查看这 部分的文档 中关于 webPreferences 项的配置。

如果是使用的 Vue + Electron-builder 的话,对应的配置的位置会有变动,按照实际项目情况来配置就好了。

新手上路,请多包涵

官方发布了,禁止使用所有nodejs API了。
From Electron 20 onwards, preload scripts are sandboxed by default and no longer have access to a full Node.js environment. Practically, this means that you have a polyfilled require function that only has access to a limited set of APIs.

好像得配置一下,现在默认的话proload只有浏览器环境,或者通过ipc通信来间接调用

webPreferences:    {
    nodeIntegration: true,
    contextIsolation: false,
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题