`node pre gyp`返回错误的节点路径

时间:2018-04-24 05:55:34

标签: node.js opencv node-pre-gyp

我试图在代码中使用node opencvnpm install工作正常,并且项目中内置了正确的node_modules。但是当我试图运行项目后出现错误。

Error: Cannot find module '/home/.../node_modules/opencv/build/opencv/v6.0.0/Release/node-v14-linux-x64/opencv.node'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/.../node_modules/opencv/lib/bindings.js:4:15)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/.../node_modules/opencv/lib/opencv.js:7:27)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)

Process finished with exit code 1

正如您在第一行中看到的,它搜索文件夹../node-v14-linux-x64/..但我的节点模块版本是57(节点v8.11.1)

这是生成上述路径的代码。 (node_modules/opencv/lib/bindings.js)

var binary = require('node-pre-gyp');
var path = require('path');
var binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')), { debug: !!process.env.NODE_OPENCV_DEBUG });
var binding = require(binding_path);

这就是我的opencv在node_modules

中的样子

enter image description here

正如您所见,为节点模块编号57创建了目录,但bindings.js正在寻找模块编号14.

这些是我使用的版本

node -v
v8.11.1
npm -v
5.6.0
nvm version
v8.11.1

感谢您解决此问题的任何帮助

0 个答案:

没有答案