title: NPM install fails with node-gyp
body: <p>We are having problems running <strong>"npm install"</strong> on our project. A certain file cannot be found :</p>
  
  <pre><code>fatal error C1083: Cannot open include file: 'windows.h'
  </code></pre>
  
  <p>It appears to be coming from the <strong>node-gyp</strong> module : </p>
  
  <blockquote>
    <p>c:\Program
    Files\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo
    ad_hook.c(13): </p>
    
    <p>fatal error C1083: Cannot open include file: 'windows.h': No suc h
    file or directory
    [D:\ngs-frontend-next\node_modules\browser-sync\node_module
    s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil
    d\binding.sln]</p>
  </blockquote>
  
  <p>This node-gyp seems to be a never ending source of pain for us. At first it complained that it needed python, so we installed that. Then it complained that it needed VCBuild, which we installed (using .NET 2.0 SDK), now we have this error. It's almost as if the errors are getting more and more obscure, and it feels like we are going down some wrong path.</p>
  
  <p>The strange thing is, that other people in our team have zero problems running the npm-install.</p>
  
  <p>The full error looks like this :</p>
  
  <blockquote>
    <p>c:\Program
    Files\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo
    ad_hook.c(13): </p>
    
    <p>fatal error C1083: Cannot open include file: 'windows.h': No suc h
    file or directory
    [D:\ngs-frontend-next\node_modules\browser-sync\node_module
    s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil
    d\binding.sln]</p>
    
    <p>gyp ERR! build error gyp ERR! stack Error:
    <code>C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe</code> failed
    with exit code: 1  stack     at ChildProcess.onExit (C:\Program
    Files\nodejs\node_modules\npm\node
    _modules\node-gyp\lib\build.js:270:23) gyp ERR! stack     at emitTwo (events.js:87:13) gyp ERR! stack     at ChildProcess.emit
    (events.js:172:7) gyp ERR! stack     at
    Process.ChildProcess._handle.onexit (internal/child_proces
    s.js:200:12) gyp ERR! System Windows_NT 6.1.7601 gyp ERR! command
    "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodej
    s\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js"
    "rebuild" gyp ERR! cwd
    D:\ngs-frontend-next\node_modules\browser-sync\node_modules\socket.
    io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil gyp
    ERR! node -v v4.2.2 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok npm
    WARN optional dep failed, continuing utf-8-validate@1.2.1</p>
    
    <blockquote>
      <p>gifsicle@3.0.3 postinstall D:\ngs-frontend-next\node_modules\gulp-imagemin\nod
      e_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle
      node lib/install.js</p>
    </blockquote>
  </blockquote>
  
  <p>Out <strong>pacakge.json</strong> looks like this :</p>
  
  <pre><code>{
    "name": "Fast-nunjucks",
    "version": "0.0.1",
    "description": "A simple boilerplate using nunjucks as a template engine",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" &amp;&amp; exit 1"
    },
    "repository": {
      "type": "git",
      "url": "https://github.com/willianjusten/Fast-nunjucks.git"
    },
    "keywords": [
      "nunjucks",
      "node",
      "gulp",
      "stylus"
    ],
    "author": "Willian Justen de Vasconcellos",
    "license": "ISC",
    "bugs": {
      "url": "https://github.com/willianjusten/Fast-nunjucks/issues"
    },
    "homepage": "https://github.com/willianjusten/Fast-nunjucks",
    "devDependencies": {
      "autoprefixer-stylus": "^0.7.1",
      "browser-sync": "^2.8.2",
      "gulp": "^3.9.0",
      "gulp-cache": "^0.3.0",
      "gulp-concat": "^2.6.0",
      "gulp-if": "^1.2.5",
      "gulp-imagemin": "^2.3.0",
      "gulp-minify-html": "^1.0.4",
      "gulp-nunjucks-html": "^1.2.2",
      "gulp-order": "^1.1.1",
      "gulp-plumber": "^1.0.1",
      "gulp-stylus": "^2.0.6",
      "gulp-uglify": "^1.2.0",
      "gulp-util": "^3.0.6",
      "jeet": "^6.1.2",
      "kouto-swiss": "^0.11.13",
      "minimist": "^1.1.3",
      "rupture": "^0.6.1"
    },
    "dependencies": {
      "gulp-install": "^0.6.0"
    }
  }
  </code></pre>