【发布时间】:2018-04-06 10:30:11
【问题描述】:
我使用 v8.h 标头在 c++ 中编写了一个本机模块,我想将它导入到我的电子应用程序中。
该模块工作正常。我在它自己的文件夹中编译它,然后我将 .node 复制粘贴到这个样板 https://github.com/szwacz/electron-boilerplate 中,我需要它使用 bindings 包。
我想以此 https://github.com/electron-userland/electron-webpack-quick-start 作为起点来构建我的电子应用程序。主要有两个原因:这是推荐的方式,它承诺将您的应用程序打包为 macOS、Linux 和 Windows。我将包含源代码的文件夹复制到项目的根文件夹中,并将bindings.gyp 文件和"nodeGypRebuild": "true", 添加到根文件夹中的package.json。该模块是用yarn install 编译的,但如果我尝试在src/main/index.js 中导入它import {Module} from 'MyModule' 并运行yarn dev,则输出为
Module not found: Error: Can't resolve 'MyModule' in '/Users/BiA/Src/WebPack/src/main'
在谷歌搜索问题时,我发现https://github.com/chentsulin/electron-react-boilerplate/wiki/Module-Structure----Two-package.json-Structure 现在我更加困惑,因为electron-webpack-quick-start 中没有app/ 文件夹
有人能帮我找到一条从这个死胡同中退出的方法吗?是否存在涵盖此案例的文档?即使是一个可行的示例,例如我可以学习的开源项目,也会有所帮助。
编辑:为了更好地理解问题,我创建了一个简单的 git 存储库:https://github.com/BiancoA/electron-webpack-quick-start-nm
【问题讨论】:
-
为什么要用两个package.json?在
electron-webpack-quick-start中,您应该将文件放在src文件夹中 -
@kontrollanten 感谢您的评论。你的意思是我也应该把我的模块的代码?
-
很难说。
/Users/BiA/Src/WebPack/src/main中有一个名为 MyModule 的文件吗? -
我可以将 MyModule.node 文件复制(binding.gyp 允许您这样做)到
/Users/BiA/Src/WebPack/src/main,但这并不能解决问题 -
好吧。如果您可以显示一些代码来显示您如何导入和尝试使用该模块,那将会很有帮助
标签: webpack electron-builder native-module