Cannot npm install due to node-gyp: binding.gyp not found

50,011

Solution 1

I am using macos catalina 10.15.5 and i faced the same issues and all the above solutions didn't worked for me. I was able to resolve this by running

npm i -g node-gyp@latest && npm config set node_gyp "/usr/local/lib/node_modules/node-gyp/bin/node-gyp.js"

Hope this helps people.

Solution 2

create a binding.gyp file and place it in your project root. the content of the file looks like this:

{
  "targets": [
    {
      "target_name": "binding",
      "sources": [ "src/binding.cc" ]
    }
  ]
}

A binding.gyp file describes the configuration to build your module, in a JSON-like format. This file gets placed in the root of your package, alongside package.json. see here: https://github.com/nodejs/node-gyp#the-bindinggyp-file

Share:
50,011

Related videos on Youtube

Ben S
Author by

Ben S

Updated on July 09, 2022

Comments

  • Ben S
    Ben S almost 2 years

    I have been working on this all day and have tried lots of different things:

    • Uninstalling node and installing latest version
    • Using the --msvs_version= flag set to 2010, 2011, 2012, 2013, 2015
    • Deleting the .node-gyp folder
    • Adding python path to .npmrc like so: python=C:\Python27\python.exe
    • npm -g install npm@next
    • Running node-gyp rebuild and node-gyp configure
    • Following Robert Kehoe's guide

    Rough times.

    The package is an Electron/React app and I am running Windows 10. Console output for npm install is

    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\Microsoft.Cpp.x64.Targets(514,5): error MSB8008: Specif
    ied platform toolset (v120) is not installed or invalid. Please make sure that a supported PlatformToolset value is sel
    ected. [C:\Users\scheinerbock\Desktop\mpstudio\node_modules\mplib\build\addon.vcxproj]
    gyp ERR! build error
    gyp ERR! stack Error: `msbuild` failed with exit code: 1
    gyp ERR! stack     at ChildProcess.onExit (C:\Users\scheinerbock\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
    gyp ERR! stack     at emitTwo (events.js:106:13)
    gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
    gyp ERR! System Windows_NT 10.0.14393
    gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\scheinerbock\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
    gyp ERR! cwd C:\Users\scheinerbock\Desktop\mpstudio\node_modules\mplib
    gyp ERR! node -v v6.10.0
    gyp ERR! node-gyp -v v3.5.0
    gyp ERR! not ok
    

    And for node-gyp rebuild:

    gyp: binding.gyp not found (cwd: C:\Users\scheinerbock\Desktop\mpstudio) while trying to load binding.gyp

    I am well out of my wheelhouse here and would appreciate any suggestions or information in addition to solutions.

    • TyForHelpDude
      TyForHelpDude over 5 years
      Hello Ben, can you eloborate how you solved it, exact steps for a newer machine? which node version, npm version, whats exact commands did you run to succeed it ? Thanks
    • Ben S
      Ben S over 5 years
      @TyForHelpDude I no longer work on this project anymore, and I don't even have the computer I got things running on. So unfortunately I don't have a way of getting that info for you. Sorry
  • Ben S
    Ben S about 7 years
    Thank you for the answer mihai. Unfortunately I did install VS2015, and I tried many other versions as well. I wound up giving up on building the project on the old computer I was using and succeeded in building on a newer machine.
  • Madbreaks
    Madbreaks over 2 years
    This had no effect for me on macOS High Sierra
  • Kagiso Marvin Molekwa
    Kagiso Marvin Molekwa over 2 years
    Worked like a charm. Mind you... one should use the path node_gyp as determined by one's specific environment. my node-gyp.js was installed at ~/.nvm/versions/node/v6.17.1/lib/node_modules/node-gyp/bin/n‌​ode-gyp.js
  • Jono
    Jono over 2 years
    The solution here worked after that of @Zaid Haider (stackoverflow.com/a/62108079/777885) on macOS Big Sur. FYI binding.cc can just be an empty file 👍🏻
  • sam-6174
    sam-6174 almost 2 years
    fyi for others: this is fully documented here