node-gyp icon indicating copy to clipboard operation
node-gyp copied to clipboard

gyp errors on npm install

Open conceptree opened this issue 1 year ago • 25 comments

Hello,

I am currently getting an error in most of my installed node versions that goes from 14.16.0 up to 18 and latest 20.

I already tried most of the suggested fixs by the community that pass through the sass reinstallation and others.

I have reinstalled the node-gyp@latest globally but didnt solved the problem.

  • Node Version: 20.11.0 & NPM 10.2.4
  • Platform: Windows 10 Enterprise
  • Compiler: ?
  • Module: local-npm
npm install local-npm gyp errors
npm ERR! code 1
npm ERR! path C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\local-npm\node_modules\pouchdb\node_modules\leveldown
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c prebuild-install || node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | ia32
npm ERR! gyp info find Python using Python version 3.12.1 found at "C:\Users\X\Documents\dev\python-3.12.1-embed-win32\python.exe"
npm ERR! gyp http GET https://nodejs.org/download/release/v20.11.0/node-v20.11.0-headers.tar.gz
npm ERR! (node:195480) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
npm ERR! (Use `node --trace-warnings ...` to show where the warning was created)
npm ERR! gyp WARN install got an error, rolling back install
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
npm ERR! gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy or have bad
npm ERR! gyp ERR! stack network settings.
npm ERR! gyp ERR! stack at go (C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\npm\node_modules\@npmcli\run-script\node_modules\node-gyp\lib\install.js:244:21)
npm ERR! gyp ERR! stack at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm ERR! gyp ERR! stack at async install (C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\npm\node_modules\@npmcli\run-script\node_modules\node-gyp\lib\install.js:63:18)
npm ERR! gyp ERR! stack at async getNodeDir (C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\npm\node_modules\@npmcli\run-script\node_modules\node-gyp\lib\configure.js:53:7)
npm ERR! gyp ERR! stack at async run (C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\npm\node_modules\@npmcli\run-script\node_modules\node-gyp\bin\node-gyp.js:81:18)
npm ERR! gyp ERR! System Windows_NT 10.0.19045
npm ERR! gyp ERR! command "C:\\Users\\X\\Documents\\dev\\node-v20.11.0-win-x86\\node.exe" "C:\\Users\\X\\Documents\\dev\\node-v20.11.0-win-x86\\node_modules\\npm\\node_modules\\@npmcli\\run-script\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\local-npm\node_modules\pouchdb\node_modules\leveldown
npm ERR! gyp ERR! node -v v20.11.0
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in: C:\Users\X\AppData\Local\npm-cache\_logs\2024-01-26T13_43_18_167Z-debug-0.log

Hope to get some assitance or be pointed into possible solutions.

Thanks in advance.

conceptree avatar Jan 26 '24 13:01 conceptree

It seems to be happening on other npm installs now

npm ERR! code 1
npm ERR! path C:\Users\X\Documents\bitbucket\project\node_modules\deasync
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node ./build.js
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | ia32
npm ERR! gyp info find Python using Python version 3.12.1 found at "C:\Users\X\Documents\dev\python-3.12.1-embed-win32\python.exe"
npm ERR! gyp http GET https://nodejs.org/download/release/v18.19.0/node-v18.19.0-headers.tar.gz
npm ERR! (node:4944) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
npm ERR! (Use `node --trace-warnings ...` to show where the warning was created)
npm ERR! gyp WARN install got an error, rolling back install
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
npm ERR! gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy or have bad
npm ERR! gyp ERR! stack network settings.
npm ERR! gyp ERR! stack at go (C:\Users\X\.nvm\versions\node\v18.19.0\node_modules\npm\node_modules\node-gyp\lib\install.js:244:21)
npm ERR! gyp ERR! stack at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm ERR! gyp ERR! stack at async install (C:\Users\X\.nvm\versions\node\v18.19.0\node_modules\npm\node_modules\node-gyp\lib\install.js:63:18)
npm ERR! gyp ERR! stack at async getNodeDir (C:\Users\X\.nvm\versions\node\v18.19.0\node_modules\npm\node_modules\node-gyp\lib\configure.js:53:7)
npm ERR! gyp ERR! stack at async run (C:\Users\X\.nvm\versions\node\v18.19.0\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js:81:18)
npm ERR! gyp ERR! System Windows_NT 10.0.19045
npm ERR! gyp ERR! command "C:\\Users\\X\\.nvm\\versions\\node\\v18.19.0\\node.exe" "C:\\Users\\X\\.nvm\\versions\\node\\v18.19.0\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd C:\Users\X\Documents\bitbucket\project\node_modules\deasync
npm ERR! gyp ERR! node -v v18.19.0
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok
npm ERR! Build failed

npm ERR! A complete log of this run can be found in: C:\Users\X\AppData\Local\npm-cache\_logs\2024-01-26T14_01_46_997Z-debug-0.log

conceptree avatar Jan 26 '24 14:01 conceptree

Just tried with v16.20.2 and works without problems in the previous errors but still brakes on local-npm install.

conceptree avatar Jan 26 '24 14:01 conceptree

same error... node v18.17

rcerljenko avatar Jan 31 '24 07:01 rcerljenko

10.4.0

rcerljenko avatar Jan 31 '24 08:01 rcerljenko

ok that could be a temp fix but i would prefer to use the latest npm if possible

rcerljenko avatar Jan 31 '24 08:01 rcerljenko

https://github.com/nodejs/node-gyp/issues?q=is%3Aissue+label%3ANODE_TLS_REJECT_UNAUTHORIZED

cclauss avatar Jan 31 '24 16:01 cclauss

https://github.com/nodejs/node-gyp/issues?q=is%3Aissue+label%3ANODE_TLS_REJECT_UNAUTHORIZED

im confused.. what does this link provide. I'm also having the same issues as others described above

Spendog avatar Jan 31 '24 20:01 Spendog

That link provides a pointer to all the other issues in this repo about the same problem.

cclauss avatar Jan 31 '24 20:01 cclauss

@cclauss so does this confirms that the node tls rejection flag is the cause of the problem?

conceptree avatar Jan 31 '24 23:01 conceptree

Facing same issues

bdkoder avatar Mar 10 '24 10:03 bdkoder

Before

I met the same error. What should I do ?


Update - My solutions

  1. updating npm bundled node gyp
  2. Recreate Project (I previously attempted rm -rf node_modules, rm -rf package-lock.json, npm cache clean --force, and npm cache verify, all of which were unsuccessful.)
  3. npm i -g node-gyp@latest
  4. npm install

Tuscan-blue avatar May 11 '24 07:05 Tuscan-blue

Are you all trying to install leveldown or some other module?

cclauss avatar May 11 '24 08:05 cclauss

@cclauss I tried to install sqlite3....

Tuscan-blue avatar May 11 '24 09:05 Tuscan-blue

https://stackoverflow.com/a/62096421/15046796 this worked for me on macOS.

GourishettySairam avatar Jun 06 '24 13:06 GourishettySairam

https://stackoverflow.com/a/62096421/15046796 this worked for me

this stackoverflow post seems unrelated to the issue, care to explain?

Lightiiy avatar Jun 13 '24 13:06 Lightiiy

https://stackoverflow.com/a/62096421/15046796 this worked for me

this stackoverflow post seems unrelated to the issue, care to explain?

I am using Mac m1 chip laptop. I've recently updated to latest homebrew version. When I try to install node modules, there were these node gyp errors. So using the stackoverflow post above I was able to downgrade the homebrew version and the node modules were now installed successfully. So the solution that i posted above is for specifically Mac machines.

GourishettySairam avatar Jun 13 '24 13:06 GourishettySairam

https://stackoverflow.com/a/62096421/15046796 this worked for me

this stackoverflow post seems unrelated to the issue, care to explain?

I am using Mac m1 chip laptop. I've recently updated to latest homebrew version. When I try to install node modules, there were these node gyp errors. So using the stackoverflow post above I was able to downgrade the homebrew version and the node modules were now installed successfully. So the solution that i posted above is for specifically Mac machines.

Ah, thank you for the clarification. With added context your comment can help out Mac users.

Lightiiy avatar Jun 13 '24 13:06 Lightiiy

Somewhere in the middle of logs I saw this:

Traceback (most recent call last):
  File "/Users/eugenesaigak/balance/backend/node_modules/node-gyp/gyp/gyp_main.py", line 42, in <module>
    import gyp  # noqa: E402
    ^^^^^^^^^^
  File "/Users/eugenesaigak/balance/backend/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 9, in <module>
    import gyp.input
  File "/Users/eugenesaigak/balance/backend/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in <module>
    from distutils.version import StrictVersion

This answer solved the issue for me: https://stackoverflow.com/a/77638742

brew install python-setuptools

Explanation from the source:

distutils module is used to install python packages for node gyp. This module usually installed as part of python installation. In python v3.12, distutils module removed. This means your local doesn't have any tool in place to support python package installation for node gyp.

jeniasaigak avatar Aug 14 '24 11:08 jeniasaigak

@jeniasaigak The full error log will clarify that you have an out-of-date version of node-gyp.

Please read the installation section of node-gyp's README.md.

https://github.com/nodejs/node-gyp?tab=readme-ov-file#installation says

[!Important] Python >= v3.12 requires node-gyp >= v10

cclauss avatar Aug 14 '24 12:08 cclauss

Simply do sudo npm install -g node-gyp

Then re-run npm install, all GOOD!!!!!

lumleon avatar Aug 19 '24 03:08 lumleon

I tried all the solutions in the comments, but none of them worked. in the end, it works step1: npm install node-gyp or add node-gyp to the package.json step2: npm install and it works!!! God Please!!!

  • https://www.npmjs.com/package/node-gyp

wuazhu avatar Sep 03 '24 08:09 wuazhu

What solved it for me was downgrading to node version v16.20.2, use python version 3.9.0 and also use [email protected]

And I had to ran the following commands:

npm rebuild
rm -rf node_modules
npm cache clean --force
npm i --legacy-peer-deps

Edit:

Downgrading to an unsupported version of Node.is NOT recommended.

  • https://nodejs.org/en/about/previous-releases

After downgrading and running the commands I upgraded node and python again and everything was working fine. It just needed the downgrade for the initial installation of node_modules it seemed.

studentrk avatar Sep 17 '24 10:09 studentrk

Downgrading to an unsupported version of Node.is NOT recommended.

  • https://nodejs.org/en/about/previous-releases

cclauss avatar Sep 17 '24 12:09 cclauss

I opened a pr https://github.com/npm/make-fetch-happen/pull/316 so make-fetch-happen respect NODE_TLS_REJECT_UNAUTHORIZED. It will still not respect other node variables such as NODE_EXTRA_CA_CERTS (which would be ideal for folks behind a corporate proxy).

brunoargolo avatar Sep 26 '24 18:09 brunoargolo

I found that the problem is caused by minipass-fetch dependency, which they are also facing the same problem. https://github.com/npm/minipass-fetch/issues/61#issuecomment-1405760987 Applying options.agent.options.rejectUnauthorized = false line worked for me in the index.js file of minipass-fetch inside the node_modules Recommended for those who want to apply NODE_TLS_REJECT_UNAUTHORIZED=0. Not recommended for other use cases

TunaB avatar Oct 03 '24 13:10 TunaB