【问题标题】:Electron "Uncaught ReferenceError: require is not defined"电子“未捕获的 ReferenceError:未定义要求”
【发布时间】:2020-10-22 04:40:39
【问题描述】:

我正在尝试使用此脚本执行文件:

 <script>
      function verify() {
    var child = require('child_process').execFile;
  var executablePath = "C:\\file";
  
  child(executablePath, function(err, data) {
  if(err){
     console.error(err);
     return;
  }
  
  console.log(data.toString());
    });
  }
    </script>

但是当我运行此脚本时,我收到错误“未捕获的 ReferenceError:未定义要求”。 我试图解决这个问题 3 天没有成功。我已经启用了节点集成,安装了 browserify 并阅读了 10 个不同的解释,说明如何做到这一点,但没有成功。有人知道解决此问题的方法或执行文件的替代方法吗?

【问题讨论】:

  • this 有帮助吗?

标签: javascript electron


【解决方案1】:

the Electron documentation

您只能在 ma​​in 进程中使用 require(并使用 child_process 模块),但您正试图从 renderer 进程中使用它。

将其移至主进程。

如果您需要从渲染器进程触发该功能(例如,当用户单击按钮时),则使用the ipcRenderer module 向主进程发送消息(并在那里有一个侦听器将调用verify响应该消息的函数)。

【讨论】:

  • 感谢您的回复。我是电子新手,我还在学习 javascript。我有这段代码调用 index.html 文件中的函数: 脚本现在位于 main.js 文件中(我猜它是主进程?)然后运行 ​​Browserfy 来捆绑脚本,然后将 src 更改为“bundle.js”。现在如何实现 ipcRenderer 模块?
  • @Sonalk — Electron 网站有一些很棒的文档来演示如何使用它。我在答案中链接到它。
  • 很抱歉,我仍然不太了解如何使用 ipcRenderer,而且我找不到一个好的视频来解释它。我在主进程文件和脚本中添加了“const ipc = require('electron').ipcMain”,如何使用 ipc 调用该函数?
  • 再次非常抱歉,但我成功地浪费了大约 15 个小时,试图从按钮启动一个 simple.bat 文件。我无法理解这怎么会如此难以完成。我只是想要一个简单的解释,所以我没有白做这一切......
  • 我不知道您在理解文档时遇到了什么麻烦,所以如果我提供一个简单的解释,它会与文档相同......这将毫无意义。
猜你喜欢
  • 2019-10-11
  • 2019-08-01
  • 2020-07-19
  • 2020-05-16
  • 2012-12-16
  • 2017-02-28
  • 2017-06-01
  • 2018-01-30
相关资源
最近更新 更多