0

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

在使用本机模块和电子时,我遵循了看似传统的建议。也就是说,我运行了 electron-rebuild配置了要使用的源包,最后配置了 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

在此处输入图像描述

然而,这可能是一个红鲱鱼,因为 nodegit 被写入尝试Debug作为Release失败后的后备。

这里的一般问题是“如何让这个本机模块在我的项目中工作?”。

在 repo 也有一个相应的问题,尽管如果我的问题与库本身无关,或者有一些电子原生模块的老兵,我认为 SO 将是一个好地方也检查一下。

4

1 回答 1

0

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

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

于 2017-10-10T11:33:58.293 回答