无法在电子项目

时间:2017-10-07 13:04:22

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

我正在开发一个使用webpack构建的开源电子项目。我的项目的一个要求是使用必须构建为本机模块的nodegit库。

在使用原生模块和电子时,我遵循了传统的建议。也就是说,我run electron-rebuildconfigured the source package to use,最后have configured node-loader来捕获任何.node文件的导入。

不幸的是,当我去包含模块时,我最终得到了这个错误:

ERROR in ./node_modules/nodegit/dist/nodegit.js
 Module not found: Error: Can't resolve '../build/Debug/nodegit.node' in 
 'C:\Users\atrauzzi\Development\atrauzzi\gerty\node_modules\nodegit\dist'
  @ ./node_modules/nodegit/dist/nodegit.js 18:11-49
  @ ./src/Layer/Domain/Thunktor/Git/CloneGitRepository.ts
  @ ./src/Layer/Gerty/Component/Repository/AddGitHubRepository.tsx
  @ ./src/Layer/Gerty/Component/Repository/AddRepository.tsx
  @ ./src/Layer/Gerty/Component/Workspace.tsx
  @ ./src/Layer/Gerty/Component/App.tsx
  @ ./src/Layer/Gerty/GertyServiceProvider.ts
  @ ./src/Bundle/GertyElectron.ts

我唯一可以看到的是,当我重建模块以处理电子时,我只获得Release目录,当导入似乎正在寻找Debug时:

enter image description here

这可能是红鲱鱼as nodegit is written to try Debug as a fallback after Release has failed

这里的一般问题是“我如何让这个原生模块在我的项目中运行?”。

我也有一个corresponding question over at the repo,虽然我的问题与图书馆本身无关,或者在电子中有一些本土模块的战斗老兵,我认为这样会很好检查的地方。

1 个答案:

答案 0 :(得分:0)

尝试通过将本机模块指定为外部依赖而不是使用node-loader加载来配置webpack。

https://webpack.js.org/configuration/externals/