Nodejs Cannot find module '../build/Release/canvas'

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.

6

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

4

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

1

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
1

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.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like