Aurelia npm install: tons of “gyp ERR”

These types of questions are a dime a dozen, and I've gone through resource after resource but nothing seems to work:

    <li>https://github.com/nodejs/node-gyp/issues/629</li> <li>NodeJS - Error installing with NPM</li> <li>http://blog.jimdhughes.com/2015/04/09/perils-with-node-gyp-and-windows-development/</li> </ul>

    Here's the deal, I'm pretty new to NodeJS and Aurelia, however my ancedotal experience is that with the advent of the recent front-end revolution and with all of its tooling, folks really made things look deceptively simple. I'm sure we've all seen commands akin to: "just run do my-work-for-me and your project is done!"

    Take for instance the Aurelia guide. After navigating to the working directory, all you need to do is run:

    npm install

    Well, no. npm install depends on node-gyp, which you must install manually. Well, you can't install node-gyp before you install Python. But don't get the latest one, since > 3.x is not supported. Once you install that, you encounter issues with C++ compilers required by node-gyp. So we install Microsoft VS 2012 to get the compilers.

    <strong>What I've done:</strong>

    <ol> <li>

    Set PYTHON as an environment variable

    C:\Users\[name]>py Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. </li> <li>

    Set the applicable VS version in npm, as proven by the getter:

    C:\Users\[name]>npm config get msvs_version 2012 </li> </ol>

    That said, I still encounter the following error when I attempt to run npm install from my application's target directory:

    gyp ERR! build error gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit c ode: 1 gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\nod e-gyp\lib\build.js:270:23) gyp ERR! stack at emitTwo (events.js:88:13) gyp ERR! stack at ChildProcess.emit (events.js:173:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:201:12) gyp ERR! System Windows_NT 6.1.7601 gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm \\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" gyp ERR! cwd C:\_workspaces\skeleton-navigation-1.0.0-beta.1.0.2\node_modules\utf-8-validate gyp ERR! node -v v5.2.0 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok npm WARN install:utf-8-validate@1.2.1 utf-8-validate@1.2.1 install: `node-gyp rebuild` npm WARN install:utf-8-validate@1.2.1 Exit status 1


    I really, truly don't like answering my own questions, but I was able to resolve this by taking the following steps:

    <ol> <li>Uninstall Node.js</li> <li>Uninstall Microsoft Visual Studio 2012</li> <li>Uninstall any remaining C++ 2010 x86/x64 redistributables</li> <li>Reinstall Node.js</li> <li>Use Node.js to reinstall npm </li> <li>Install Microsoft Studio 2013 (Express Desktop)</li> </ol>

    At this point, I should have been able to run npm install against the Aurelia directory, however I was still failing due to the error noted in the description of the issue.

    <ol start="7"> <li>

    Explicitly tell npm to use Microsoft Studio 2013, by issuing the command:

    npm config set msvs_version 2013 --global </li> <li>

    Now, subsequent to this command, I was able to successfully execute npm install without any GYP errors.

    </li> </ol>

    I don't know why, but for whatever reason node-gyp doesn't seem to play nice with 2012, so if you're hitting this issue, I'd opt for 2013, which is actually referenced here: https://github.com/nodejs/node-gyp


    I'm on windows and relatively new to the node-style front-end tooling. I feel your pain.

    The node gyp ERR! messages are safe to ignore. If you look closely they're always followed by npm WARN optional dep failed, continuing [some dependency]

    Here's an example of one of the many gyp ERR! blocks you'll have the pleasure of seeing when npm installing using windows:

    C:\repos\skeleton-navigation\node_modules\karma\node_modules\socket.io\node_modules\socket.io-client\node_modules\engine.io-client\node _modules\ws\node_modules\utf-8-validate>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp else (node rebuild ) s\node-gyp\bin\node-gyp.js" rebuild -) gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. gyp ERR! stack at failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:114:14) gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:69:11 gyp ERR! stack at FSReqWrap.oncomplete (evalmachine.<anonymous>:95:15) gyp ERR! System Windows_NT 6.3.9600 gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" gyp ERR! cwd C:\repos\skeleton-navigation\node_modules\karma\node_modules\socket.io\node_modules\socket.io-client\node_modules\engine.i o-client\node_modules\ws\node_modules\utf-8-validate gyp ERR! node -v v0.12.7 gyp ERR! node-gyp -v v2.0.1 gyp ERR! not ok npm WARN optional dep failed, continuing utf-8-validate@1.2.1


    If you have Visual Studio 2015 Community with C++ section checked, or Visual Studio 2015 Express for Desktop it will put in the right bits.

    If you need minimal install for VM or just not using those tools on Windows 10 x64:

    1 - Python

    Install latest Python 2.7.x, not 3.x. You don't have to select option to add to PATH unless you need Python for some other tool.

    2 - Microsoft Visual C++ Build Tools 2015 Technical Preview

    Don't do default install, you need to select both Win8.1 and Win 10 SDKs. This is referencing download posted 11/20/2015.

    Microsoft Visual C++ Build Tools 2015 Technical Preview

    3 - nodejs

    Tested with stable branch 5.3.0, add following globals for node-gyp.

    npm --global config set msvs_version 2015

    npm --global config set python c:\dev\Python27\python.exe

    (or wherever you installed python, only needed if you didn't add to PATH via installer)

    That's it.

    git clone https ://github.com/aurelia/skeleton-navigation

    cd skeleton-navigation

    npm install


  • Formatting a String for a SQL IN Clause
  • Build a string in MSBuild as a concatenation of a base string n-times
  • MSBuild: OutputPath directory is empty
  • Skip a project while building a solution using msbuild 3.5
  • How to convert NAnt function “path::combine(path1, path2)” to MSBuild?
  • Find VMID for running instance
  • How do I add a File Type Association in a Windows Phone 8.1 app manifest?
  • include dlls in visual studio c++ 2008
  • Efficient User-Agent Regex to find Safari in Python
  • Where these are stored?
  • NSIS decompiler
  • netsh acl setting (need alternative method - registry settings?)
  • aapt.exe'' finished with non-zero exit value 1
  • Sonar maven jacoco code coverage for Multimodule project
  • Tamper-proof configuration files in .NET?
  • Code in Job's Script Block after Start-Process Does not Execute
  • Needing to do .toArray() to get output of mongodb .find() on key name not value
  • Display images in Django
  • Problem deserializing objects from cache on MyBatis 3/Java
  • MongoError: Incorrect arguments
  • Typescript - Unable to get 'import' statement to function
  • Installing Hadoop, Java Exception about illegal characters at index 7?
  • C# - Serializing and deserializing static member
  • Sony Xperia Z Tablet not found by adb
  • Obtain ObjectIdHex value from mgo query
  • Sending data from AppleScript to FileMaker records
  • Running a C# exe file
  • Shallow update not allowed (git > 1.9)
  • Javascript convert timezone issue
  • Convert array of 8 bytes to signed long in C++
  • Why is the timeout on a windows udp receive socket always 500ms longer than set by SO_RCVTIMEO?
  • jquery mobile loadPage not working
  • How to include full .NET prerequisite for Wix Burn installer
  • How do you join a server to an Active Directory (domain)?
  • -fvisibility=hidden not passed by compiler for Debug builds
  • Qt: Run a script BEFORE make
  • LevelDB C iterator
  • Is it possible to post an object from jquery to bottle.py?
  • Running Map reduces the dimensions of the matrices
  • Net Present Value in Excel for Grouped Recurring CF