foo
我为我的 Electron 应用程序构建了一个 C++ 本机模块。该模块位于我的项目根目录中。我package.json
通过设置本地路径将项目添加到我的项目中 - 这是一个受支持并在此处描述的功能。
"dependencies": {
"thumbnail": "file:./foo",
当我npm i
在我的 Electron 应用程序中执行时,所有本机模块都被编译并且我自己的模块吐出一个my-electron-app/foo/build/Release/foo.node
二进制文件。但是通过在我的 Electron 应用程序中“导入”模块require("foo")
失败,我收到以下错误:
vendor.js:40750 Uncaught Error: Could not locate the bindings file. Tried:
→ my-electron-app\build\foo.node
→ my-electron-app\build\Debug\foo.node
→ my-electron-app\build\Release\foo.node
→ my-electron-app\out\Debug\foo.node
→ my-electron-app\Debug\foo.node
→ my-electron-app\out\Release\foo.node
→ my-electron-app\Release\foo.node
→ my-electron-app\build\default\foo.node
→ my-electron-app\compiled\12.13.0\win32\x64\foo.node
→ my-electron-app\addon-build\release\install-root\foo.node
→ my-electron-app\addon-build\debug\install-root\foo.node
→ my-electron-app\addon-build\default\install-root\foo.node
→ my-electron-app\lib\binding\node-v76-win32-x64\foo.node
at bindings (vendor.js:40750)
at Object.1YQR (main.js:679)
at __webpack_require__ (runtime.js:85)
at Object.Iz1V (main.js:9075)
at __webpack_require__ (runtime.js:85)
at Object.4qKS (main.js:2900)
at __webpack_require__ (runtime.js:85)
at Object.Sy1n (main.js:12933)
at __webpack_require__ (runtime.js:85)
at Object.ZAI4 (main.js:15110)
如您所见,foo.node
不在其实际模块目录中搜索my-electron-app/foo/build/Release/
.
位于node_modules/
并包含build/Release
目录的所有其他本机模块都可以正常加载。
PS如果我复制foo.node
到预期的位置之一,模块加载正常。