我目前正在构建一个使用电子、react、typescript和NodeJS原生模块的应用程序。我使用提供的样板代码(https://github.com/electron-react-boilerplate/electron-react-boilerplate)启动了应用程序。
我希望在应用程序中添加一些本机模块,最好是在应用程序中编写为库。目前,我已经编写了一个C++模块来读取一些内存统计数据。当在开发模式下运行时,我可以通过如下导入模块来使模块工作:const native = require('./lib/memmonitor/build/Release/memmonitor.node');'。
我遇到的第一个问题是,模块需要通过进入控制器并手动运行electron-rebuild来手动构建。理想情况下,这应该通过运行yarn install或yarn electron-rebuild (两者都在样板package.json中定义)来触发;然而,这些命令似乎只关心通过node_modules包含的本机模块。
我遇到的第二个问题是,当打包应用程序时,节点模块没有包含在最终构建中,导致电子应用程序由于找不到节点模块而无法启动。
是否可以将本机模块构建为应用程序构建的一部分,并将其包含在最终包中,或者是否可以为每个自定义本机模块提供单独的代码库,使应用程序将库作为依赖项包括在内?
发布于 2020-09-25 21:58:16
因此,在断断续续地试图弄清楚如何完成这项工作几周后,结果发现答案是使用yarn的一个线条。
“诀窍”是使用yarn add link:../path/to/native/module将模块作为依赖项添加到项目中。这反过来告诉yarn/webpack/electron-builder有关模块的信息,这些工具将正确地处理模块的构建。
https://stackoverflow.com/questions/63838575
复制相似问题