【问题标题】:Building native modules as part of electron app将本机模块构建为电子应用程序的一部分
【发布时间】:2020-12-29 11:25:40
【问题描述】:

我目前正在使用电子、反应、打字稿和 NodeJS 原生模块构建应用程序。我使用提供的样板代码 (https://github.com/electron-react-boilerplate/electron-react-boilerplate) 启动了应用程序。

我希望在应用程序中添加一些本机模块,最好将其编写为应用程序中的库。目前我已经编写了一个 C++ 模块来读取一些内存统计信息。我可以通过如下方式导入模块,在开发模式下运行模块:const native = require('./lib/memmonitor/build/Release/memmonitor.node');'

我遇到的第一个问题是模块需要通过进入director并手动运行electron-rebuild来手动构建。理想情况下,这应该通过运行 yarn installyarn electron-rebuild 来触发(两者都在样板 package.json 中定义);但是这些命令似乎只关心通过 node_modules 包含的本机模块。

我遇到的第二个问题是,在打包应用程序时,节点模块没有包含在最终构建中,导致电子应用程序由于找不到节点模块而无法启动。

是否可以将原生模块构建为应用程序构建的一部分,并将其包含在最终包中,或者为每个自定义原生模块提供单独的存储库是标准的,让应用程序包含库作为依赖项?

【问题讨论】:

    标签: node.js webpack electron electron-builder native-module


    【解决方案1】:

    因此,在断断续续地尝试弄清楚如何完成这项工作后,结果发现答案是使用yarn 的单行器。

    “诀窍”是使用yarn add link:../path/to/native/module 将模块作为依赖项添加到项目中。这反过来告诉yarn/webpack/electron-builder 模块,工具将正确处理构建模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2018-01-20
      相关资源
      最近更新 更多