Error: Cannot find module 'nan'
Solution 1
In my case, it was because of some dependencies missing in the package-lock
file. I solved it by removing it and running $ npm install
again.
Solution 2
Install nan
globally:
npm i -g nan
And then,
export NODE_PATH=$(npm root -g)
Solution 3
Not ideal but it works if you install nan first.
$ npm install nan
Solution 4
I had this exact error with node.js version v12.18.3 and npm 6.14.6.
Upgrading to node.js version v14.15.4 (which includes npm 6.14.10) resolved the issue. npm install
ran successfully after the upgrade.
There was no need to install nan
in any way.
Rax Wunter
Updated on July 16, 2022Comments
-
Rax Wunter almost 2 years
I'm working on native Node.js addon and following nan docs
I included nan into binding.gyp like:
"include_dirs" : [ "<!(node -e \"require('nan')\")" ]
Also nan is in npm dependencies.
But when I install the package inside the another node module node-gyp is failed with error
> [email protected] install /Users/Shopgate/sandbox/stress/node_modules/nnb > node-gyp rebuild module.js:338 throw err; ^ Error: Cannot find module 'nan' 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 [eval]:1:1 at Object.exports.runInThisContext (vm.js:74:17) at Object.<anonymous> ([eval]-wrapper:6:22) at Module._compile (module.js:460:26) at evalScript (node.js:431:25) at startup (node.js:90:7) gyp: Call to 'node -e "require('nan')"' returned exit status 1. while trying to load binding.gyp