我正在开发一个使用 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 将是一个好地方也检查一下。