javascript - 将Electron与React一起使用时的“Uncaught TypeError: fs.writeFile is not a function”

标签 javascript node.js reactjs electron

我遵循this tutorial创建了我的Electron/React应用程序,并且我的代码与本教程的代码大致相同。但是,我发现无法使用“fs.writeFile”在本地加载或保存文件。我收到错误“ Uncaught TypeError:fs.​​writeFile不是函数”,即使intellisense知道fs是什么。

我目前正在使用此语句来实现并调用fs:

const fs = require('fs');

fs.writeFile(JSONFile, window.JSONObj);

我对Electron和React都很陌生,所以我不确定如何解决此问题。我过去创建了一个Electron应用程序(没有React),但是没有这个问题。任何有关如何解决此问题的技巧将不胜感激。

编辑:我终于解决了我的问题。我没有使用最初使用的教程,而是找到了this tutorial,它显示了如何创建一个允许使用“fs”的Electron/React应用程序。根据文章,问题在于“Electron 渲染器”需要成为“Webpack目标”。

最佳答案

本教程有些过时了。现在,默认情况下,Electron没有为渲染器进程(浏览器窗口)启用 Node 。您可以通过以下方法启用它,以便可以通过创建的窗口访问 Node 的fs API:

new BrowserWindow({

  // your window configuration

  webPreferences: {
    nodeIntegration: true
  }
});

引用:https://www.electronjs.org/docs/api/browser-window

请注意,此更改是出于安全原因。您可能会重构代码以将消息发送到主进程,该主进程又可以执行与文件系统的交互。

安全引用:https://www.electronjs.org/docs/tutorial/security

关于javascript - 将Electron与React一起使用时的“Uncaught TypeError: fs.writeFile is not a function”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61916343/

相关文章:

javascript - Kyle Simpson 的 YDKJS 中的动态范围和 `this`

node.js - 使用多对多关联对 Model.create 进行后续处理

javascript - 如何在 React Native 上使用 TextInput 中从 Api 获取数据?

javascript - 警告错误:reactjs 中无法访问代码

node.js - 为什么我的 POST 请求在 Node 中不起作用

android - this.props.logged in 不是未定义的函数

javascript - Vuejs 和 Drupal

javascript - 以编程方式获取已启动 Puppeteer 实例的命令行标志

javascript - 如何在 FTL 中访问 Jquery 的变量?

javascript - 使用 zip 运行所有 Observables