node.js - 将 React 与 Electron 一起使用,以便仍然可以使用 Node.js 原生模块
问题描述
我正在尝试在我的 React 应用程序中使用crypto.scrypt()
Node.js Crypto,在 Electron v11.2.1 中运行。
目前,我正在使用react-scripts start
启动开发服务器。
然后我启动 Electron 应用程序,它在main.js中的配置如下:
mainWindow.loadURL('http://localhost:3000');
在我的反应应用程序中:
const nodeCrypto = require('crypto');
问题:如果我这样做console.log(nodeCrypto)
,对象不包含scrypt
or scryptSync
。
另一方面,如果我创建了一个新的简单 Electron 项目并且不使用 React,而是像这样配置它:
在main.js 中:
mainWindow.loadFile('index.html');
在index.html中:
<script>
require('./renderer.js');
</script>
在renderer.js中:
const nodeCrypto = require('crypto');
console.log(nodeCrypto);
正如我所期望的那样,我可以在控制台日志中看到scrypt
和。scryptSync
nodeCrypto
现在,我的理论是这样的:因为 React 应用程序是“单独”运行的http://localhost:3000
,所以它不是crypto
从本机 Node.js 模块使用,而是从其他地方使用它。我可能是错的。
我的问题是......我怎样才能在开发服务器中运行 React 应用程序(以便在开发过程中实时重新加载)但仍然可以访问像crypto
Electron 内部的 Node.js 原生模块?
解决方案
推荐阅读
- javascript - 在单页应用程序中应用 div(卡片)中的排序方法 - Vanilla Javascript
- javascript - 表示函数上下文的变量?
- html - 创建具有清晰文本元素的固定、较暗、模糊的背景图像
- installation - 在 MacOS Big Sur(M1 芯片)上安装自制软件时收到警告
- mysql - 我们如何分别展示不同类型的产品?
- scrapy - 使用scrapyd.schedule时如何将带有scrapyd的数字/字符串列表发送给蜘蛛
- node.js - nodejs不和谐从用户ID获取昵称
- python - Python Dictionary 实现相关的语法问题
- ffmpeg - 如何对 m3u8 文件执行 mediainfo
- javascript - 导入 git npm 模块导致未定义