2

I was trying to use node opencv in my code. npm install works fine and correct node_modules are built into the project. But when I'm trying to run the project following error comes up.

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

As you can see in the first line it search for folder ../node-v14-linux-x64/.. But my node module version is 57(node v8.11.1)

This is where the code that generates above path. (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);

And this is how my opencv looks like inside node_modules

enter image description here

As you can see directory is created for node module number 57 but bindings.js is looking for module number 14.

These are the versions I'm using,

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

Appreciate any help to resolve this issue

Channa
  • 3,267
  • 7
  • 41
  • 67

0 Answers0