I installed cairo, and node-canvas. I tried everything, but still can't find module.
sudo apt-get install libcairo2-dev sudo npm install canvas sudo npm install canvas -g If I run require('canvas'), I get this error:
Error: Cannot find module '../build/Release/canvas' at Function._resolveFilename (module.js:332:11) at Function._load (module.js:279:25) at Module.require (module.js:354:17) at require (module.js:370:17) at Object.<anonymous> (/home/tomas/node_modules/canvas/lib/bindings.js:2:18) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:32) at Function._load (module.js:308:12) at Module.require (module.js:354:17) I use Ubuntu linux
Thanks in advance.
69 Answers
In my case i have to spend lot of time to resolve this issue.
I just use "npm uninstall canvas" and then install using "npm i canvas"
Try this is if above option not works for you.
4It seemed like the install script of canvas haven't been called in my case, too. Instead of deleting the lock file I just called the script manually which solved the issue in my case (at least temporarily).
Therefore, if the canvas package has been installed already, go to /node_modules/canvas/ and run npm run install which creates the build directory.
I had the same problem. The issue was that the install script for node-canvas never got executed, which is why the build folder was missing.
In my case, removing the yarn.lock file was the solution, as it skipped the node-canvas package installation for some reason. Once I let npm take care of the packages, it successfully installed node-canvas, ran the install script and the build folder showed up again.
Problem here looks like 1. Your node modules are installed in a different location But the node.js runtime is searching for it in a different place. Check the NODE_PATH and see if this is the case.
Refer the module loading explained in
You can try this:
- Delete node_modules/ folder
- Run dependency installations (
npm install) - Use a different Node version
Same problem in my nextjs application. In my case. I installed react-pdf package then this problem happened.
My resolve: Just Notify webapck to ignore the canvas module
Add the following webpack options in next.config.js
const nextConfig = { webpack(config){ config.externals.push('canvas') return config } }; I had a similar problem but I used canvas-prebuilt which is a drop-in replacement for canvas and I fixed it for doing this: npm install -g node-gyp and then node-gyp rebuild in the terminal
In my case:
rm -rf node_modules rm package-lock.json npm install :D
sudo apt-get install libpixman-1-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev libgif-dev libjpeg-dev If use ubuntu,try install above lib then install canvas.work fine for me。
If you use cnpm install the canvas. try npm.