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
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