【问题标题】:Attempting to link a native module using electron-webpack尝试使用 electron-webpack 链接本机模块
【发布时间】: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


【解决方案1】:

我使用yarn link找到了问题的解决方案:https://yarnpkg.com/lang/en/docs/cli/link/

我在这里保存了工作项目: https://github.com/BiancoA/electron-webpack-quick-start-nm

如果还有其他可能的方法,我很乐意学习它们

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2018-08-26
    • 2018-06-23
    • 2020-11-09
    • 1970-01-01
    • 2021-04-29
    • 2020-10-06
    • 2016-10-12
    • 2021-09-18
    相关资源
    最近更新 更多