HashLips / hashlips_art_engine

HashLips Art Engine is a tool used to create multiple different instances of artworks based on provided layers.
MIT License
7.18k stars 4.3k forks source link

Cannot find module / canvas install issue #654

Open Wnnessl opened 2 years ago

Wnnessl commented 2 years ago

Hello everyone, I seem to be having the common problem of the "cannot find module" error. I have tried everything I've come across and even what works for others is not working for me.

When trying to run the code, I receive this error: MacBook-Air:hashlips_art_engine_main USER$ node index.js node:internal/modules/cjs/loader:936 throw err; ^

Error: Cannot find module '/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas' Require stack:

Now, from what I've encountered through my hours of research is that I do not have canvas installed, as I am missing the 'build' section in Visual Studios. So, when trying to install canvas, even as an admin, I am receiving this error:

MacBook-Air:hashlips_art_engine_main USER$ npm install canvas npm ERR! code 1 npm ERR! path /Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas npm ERR! command failed npm ERR! command sh -c node-pre-gyp install --fallback-to-build npm ERR! Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93 --python=/path/to/executable/python' (1) npm ERR! node-pre-gyp info it worked if it ends with ok npm ERR! node-pre-gyp info using node-pre-gyp@1.0.8 npm ERR! node-pre-gyp info using node@16.13.2 | darwin | arm64 npm ERR! node-pre-gyp info check checked for "/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release/canvas.node" (not found) npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.9.0/canvas-v2.9.0-node-v93-darwin-unknown-arm64.tar.gz npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.9.0/canvas-v2.9.0-node-v93-darwin-unknown-arm64.tar.gz npm ERR! node-pre-gyp WARN Pre-built binaries not installable for canvas@2.9.0 and node@16.13.2 (node-v93 ABI, unknown) (falling back to source compile with node-gyp) npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.9.0/canvas-v2.9.0-node-v93-darwin-unknown-arm64.tar.gz npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@8.3.0 npm ERR! gyp info using node@16.13.2 | darwin | arm64 npm ERR! gyp info ok npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@8.3.0 npm ERR! gyp info using node@16.13.2 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.10.2 found at "/Library/Frameworks/Python.framework/Versions/3.10/bin/python3" npm ERR! gyp info spawn /Library/Frameworks/Python.framework/Versions/3.10/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/wendynessl/Library/Caches/node-gyp/16.13.2/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/wendynessl/Library/Caches/node-gyp/16.13.2', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/wendynessl/Library/Caches/node-gyp/16.13.2/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! /bin/sh: pkg-config: command not found npm ERR! gyp: Call to 'pkg-config pixman-1 --libs' returned exit status 127 while in binding.gyp. while trying to load binding.gyp npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: gyp failed with exit code: 1 npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:261:16) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:390:28) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12) npm ERR! gyp ERR! System Darwin 21.1.0 npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93" "--python=/path/to/executable/python" npm ERR! gyp ERR! cwd /Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas npm ERR! gyp ERR! node -v v16.13.2 npm ERR! gyp ERR! node-gyp -v v8.3.0 npm ERR! gyp ERR! not ok npm ERR! node-pre-gyp ERR! build error npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93 --python=/path/to/executable/python' (1) npm ERR! node-pre-gyp ERR! stack at ChildProcess. (/Users/USER/Downloads/hashlips_art_engine_main/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23) npm ERR! node-pre-gyp ERR! stack at ChildProcess.emit (node:events:390:28) npm ERR! node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1064:16) npm ERR! node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5) npm ERR! node-pre-gyp ERR! System Darwin 21.1.0 npm ERR! node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/USER/Downloads/hashlips_art_engine_main/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" npm ERR! node-pre-gyp ERR! cwd /Users/USER/Downloads/hashlips_art_engine_main/node_modules/canvas npm ERR! node-pre-gyp ERR! node -v v16.13.2 npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.8 npm ERR! node-pre-gyp ERR! not ok

npm ERR! A complete log of this run can be found in: npm ERR! /Users/USER/.npm/_logs/2022-02-01T14_53_46_948Z-debug.log

I feel like I have tried everything and this is a last resort. I have tried solutions from similar threads on this site and they did not work for me. Any help is greatly appreciated!!

bolshoytoster commented 2 years ago

@Wnnessl it returns a ‘404 not found’ because it looks for the arm version of canvas (which doesn’t exist). You can get a version that does exist with npm install --target_arch=x64. You will also have to run /usr/sbin/softwareupdate --install-rosetta if you don’t have rosetta installed and you’ll probably also have to install the x64 version of node.js.

Wnnessl commented 2 years ago

@Wnnessl it returns a ‘404 not found’ because it looks for the arm version of canvas (which doesn’t exist). You can get a version that does exist with npm install --target_arch=x64. You will also have to run /usr/sbin/softwareupdate --install-rosetta if you don’t have rosetta installed and you’ll probably also have to install the x64 version of node.js.

Thank you for your response! I tried installing those and both of them worked, however, I am still receiving both errors when trying to run the program or install canvas (minus the 404 error). Any thoughts?

thepeanutgalleryandco commented 2 years ago

@Wnnessl are you using a Mac by any chance with a M1 chip? If yes, try uninstalling your latest Node version and install the latest version 14 of Node and try again.

Wnnessl commented 2 years ago

@thepeanutgalleryandco I couldn't get that version of Node to work at all :(

thepeanutgalleryandco commented 2 years ago

Are you using a mac M1 chip machine?

Wnnessl commented 2 years ago

@thepeanutgalleryandco Yes I am, sorry

thepeanutgalleryandco commented 2 years ago

I worked with another user who had this exact same issue, then uninstalled and deleted node.js and then downloaded node js 14.19.0 from https://nodejs.org/dist/v14.19.0/ and then the npm install commands worked.

Wnnessl commented 2 years ago

@thepeanutgalleryandco Okay, I will try again. I have followed a lot of other advice that other people have received across the internet, so my VS Code is a little hectic atm. I will try and start over from scratch.

brown2020 commented 2 years ago

I had this same issue on a new M1 Mac. Everything worked fine on the old machine but broke on the M1. After trying lots of Node versions, trying to switch the architecture, recompiling canvas and a lot of other things, none of which worked, here's what finally did the trick:

install brew by doing this:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

takes a while. then run this from the terminal:

brew install pkg-config cairo pango libpng jpeg giflib librsvg

it also takes a while. then go back and do this

npm install npm run generate

mustafa-boorenie commented 2 years ago

I am also having this issue with the M1 MacBooks. I have tried @brown2020 's recommendation to no avail. Any other suggestions?

Wnnessl commented 2 years ago

@mustafa-boorenie I ended up just using my Windows laptop instead. It's very old and very slow but at least it works. Will continue to keep an eye out for a solution though.

olischloesser commented 2 years ago

@mustafa-boorenie I have a MacBook Pro with M1 chip and downgrading to node 14.19.0 did the trick.