0

I'm trying to install the express module for node.js

I tried doing:

`sudo npm install express` 

which results in countless errors and warnings, I've tried updating node.js too, which also results in a bombardment of errors. Here is the output for when I tried to install express. (I'm using MacOSX):

`npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm ERR! code 1
npm ERR! path /Users/coding/Desktop/GDBrowser-master/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/coding/Desktop/GDBrowser-master/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/coding/Desktop/GDBrowser-master/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (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.11
npm ERR! node-pre-gyp info using node@18.16.1 | darwin | x64
npm ERR! node-pre-gyp info check checked for "/Users/coding/Desktop/GDBrowser-master/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.8.0/canvas-v2.8.0-node-v108-darwin-unknown-x64.tar.gz
npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.8.0/canvas-v2.8.0-node-v108-darwin-unknown-x64.tar.gz 
npm ERR! node-pre-gyp WARN Pre-built binaries not installable for canvas@2.8.0 and node@18.16.1 (node-v108 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.8.0/canvas-v2.8.0-node-v108-darwin-unknown-x64.tar.gz 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.4.0
npm ERR! gyp info using node@18.16.1 | darwin | x64
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.4.0
npm ERR! gyp info using node@18.16.1 | darwin | x64
npm ERR! gyp info find Python using Python version 3.8.2 found at "/Library/Developer/CommandLineTools/usr/bin/python3"
npm ERR! gyp info spawn /Library/Developer/CommandLineTools/usr/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/coding/Desktop/GDBrowser-master/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/coding/Library/Caches/node-gyp/18.16.1/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/coding/Library/Caches/node-gyp/18.16.1',
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/coding/Library/Caches/node-gyp/18.16.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/Users/coding/Desktop/GDBrowser-master/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:325:16)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Darwin 19.6.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/coding/Desktop/GDBrowser-master/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/Users/coding/Desktop/GDBrowser-master/node_modules/canvas/build/Release" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v108"
npm ERR! gyp ERR! cwd /Users/coding/Desktop/GDBrowser-master/node_modules/canvas
npm ERR! gyp ERR! node -v v18.16.1
npm ERR! gyp ERR! node-gyp -v v9.4.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/coding/Desktop/GDBrowser-master/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/coding/Desktop/GDBrowser-master/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/coding/Desktop/GDBrowser-master/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1091:16)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:302:5)
npm ERR! node-pre-gyp ERR! System Darwin 19.6.0
npm ERR! node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/coding/Desktop/GDBrowser-master/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
npm ERR! node-pre-gyp ERR! cwd /Users/coding/Desktop/GDBrowser-master/node_modules/canvas
npm ERR! node-pre-gyp ERR! node -v v18.16.1
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.11
npm ERR! node-pre-gyp ERR! not ok

npm ERR! A complete log of this run can be found in: /Users/coding/.npm/_logs/2023-07-16T21_08_10_714Z-debug-0.log`

I also tried:

`sudo npm install -g express`

which said:

    added 58 packages in 2s
    
    8 packages are looking for funding
      run npm fund for details

and then when I tried running the code, it still said:

`node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- /Users/coding/Desktop/GDBrowser-master/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/Users/coding/Desktop/GDBrowser-master/index.js:1:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/Users/coding/Desktop/GDBrowser-master/index.js' ]
}

Node.js v18.16.1`

2 Answers2

0

Seems your problem is from the canvas module which requires to have build-essential, to compile node gyp C++ addons, You are installing Express globally, but do not see the express module, because you have it in your package JSON and it tries to find the package in node modules.

user3548808
  • 93
  • 10
  • "from the canvas module which requires to have build-essential", I'm new to using Node.js, I do not really know what that means. Please elaborate or provide something I can run in terminal. Thank you. –  Jul 16 '23 at 21:33
  • if you use Linux Debian you can try `sudo apt install build-essential`. Delete node_moduls, and do npm install again. – user3548808 Jul 16 '23 at 21:43
  • In my case I've succeeded, after many tries of npm install, it was always hard to install the canvas module. – user3548808 Jul 16 '23 at 21:45
  • As stated in the response, I am on Mac OS X. "sudo apt install build-essential" didn't work either. –  Jul 17 '23 at 01:18
  • Than try following command `brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman` this will install needed dependencies. – user3548808 Jul 17 '23 at 04:34
  • "Error: Running Homebrew as root is extremely dangerous and no longer supported. As Homebrew does not drop privileges on installation you would be giving all build scripts full access to your system." @user3548808 –  Jul 17 '23 at 13:43
  • No need to run with sudo command, run the command from your user, not root or sudo. – user3548808 Jul 17 '23 at 14:23
  • Without sudo it has no perms "ibpng jpeg giflib librsvg pixman shell-init: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted pwd: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted Error: The current working directory doesn't exist, cannot proceed." –  Jul 17 '23 at 15:26
  • you have to fix your homebrew first, check [here](https://stackoverflow.com/questions/16432071/how-to-fix-homebrew-permissions), seems they solved it – user3548808 Jul 17 '23 at 16:31
0

I think you have problems installing nodejs. Delete the current nodejs and reinstall it via nvm

  • I deleted the old node.js, and then installed the latest version, but it still does not work. –  Jul 17 '23 at 15:25
  • also what is nvm –  Jul 17 '23 at 15:37
  • nvm (node version manager) I use linux, and sometimes I get the above error due to incorrect installation, when installed via nvm, nodejs is stored separately from the main environment (~/.nvm folder). so i don't have this problem. This is based on my current knowledge. It may be wrong Installation in the link below https://github.com/nvm-sh/nvm – Mehriddin Nozimov Jul 17 '23 at 15:44