title: Npm install rebuilds .node-gyp upon every install
body: <p>I'm getting this message upon every <code>npm install</code>:</p>
  
  <pre><code>&gt; fsevents@1.2.4 install /Users/USERNAME/URL/TO/GULP/FILE/node_modules/fsevents
  &gt; node install
  
  [fsevents] Success: "/Users/USERNAME/URL/TO/GULP/FILE/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed
  Pass --update-binary to reinstall or --build-from-source to recompile
  
  &gt; node-sass@3.13.1 install /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass
  &gt; node scripts/install.js
  
  Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node
  Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node":
  
  HTTP error 404 Not Found
  
  Hint: If github.com is not accessible in your location
        try setting a proxy via HTTP_PROXY, e.g.
  
        export HTTP_PROXY=http://example.com:1234
  
  or configure npm proxy via
  
        npm config set proxy http://example.com:8080
  
  &gt; node-sass@3.13.1 postinstall /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass
  &gt; node scripts/build.js
  
  Building: /usr/local/bin/node /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
  gyp info it worked if it ends with ok
  gyp verb cli [ '/usr/local/bin/node',
  gyp verb cli   '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/bin/node-gyp.js',
  gyp verb cli   'rebuild',
  gyp verb cli   '--verbose',
  gyp verb cli   '--libsass_ext=',
  gyp verb cli   '--libsass_cflags=',
  gyp verb cli   '--libsass_ldflags=',
  gyp verb cli   '--libsass_library=' ]
  gyp info using node-gyp@3.7.0
  gyp info using node@8.11.1 | darwin | x64
  gyp verb command rebuild []
  gyp verb command clean []
  gyp verb clean removing "build" directory
  gyp verb command configure []
  gyp verb check python checking for Python executable "python2" in the PATH
  gyp verb `which` failed Error: not found: python2
  gyp verb `which` failed     at getNotFoundError (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:13:12)
  gyp verb `which` failed     at F (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:68:19)
  gyp verb `which` failed     at E (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:80:29)
  gyp verb `which` failed     at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:89:16
  gyp verb `which` failed     at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/index.js:42:5
  gyp verb `which` failed     at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/mode.js:8:5
  gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
  gyp verb `which` failed  python2 { Error: not found: python2
  gyp verb `which` failed     at getNotFoundError (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:13:12)
  gyp verb `which` failed     at F (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:68:19)
  gyp verb `which` failed     at E (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:80:29)
  gyp verb `which` failed     at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:89:16
  gyp verb `which` failed     at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/index.js:42:5
  gyp verb `which` failed     at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/mode.js:8:5
  gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
  gyp verb `which` failed   stack: 'Error: not found: python2\n    at getNotFoundError (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:13:12)\n    at F (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:68:19)\n    at E (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/    which/which.js:80:29)\n    at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:89:16\n    at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/index.js:42:5\n    at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/mode.js:8:5\n    at FSReqWrap.oncomplete (fs.js:152:21)',
  gyp verb `which` failed   code: 'ENOENT' }
  gyp verb check python checking for Python executable "python" in the PATH
  gyp verb `which` succeeded python /usr/bin/python
  gyp verb check python version `/usr/bin/python -c "import platform; print(platform.python_version());"` returned: "2.7.10\n"
  gyp verb get node dir no --target version specified, falling back to host node version: 8.11.1
  gyp verb command install [ '8.11.1' ]
  gyp verb install input version string "8.11.1"
  gyp verb install installing version: 8.11.1
  gyp verb install --ensure was passed, so won't reinstall if already installed
  gyp verb install version is already installed, need to check "installVersion"
  gyp verb got "installVersion" 9
  gyp verb needs "installVersion" 9
  gyp verb install version is good
  gyp verb get node dir target node version installed: 8.11.1
  gyp verb build dir attempting to create "build" dir: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build
  gyp verb build dir "build" dir needed to be created? /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build
  gyp verb build/config.gypi creating config file
  gyp verb build/config.gypi writing out config file: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build/config.gypi
  gyp verb config.gypi checking for gypi file: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/config.gypi
  gyp verb common.gypi checking for gypi file: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/common.gypi
  gyp verb gyp gyp format was not specified; forcing "make"
  gyp info spawn /usr/bin/python
  gyp info spawn args [ '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/gyp/gyp_main.py',
  gyp info spawn args   'binding.gyp',
  gyp info spawn args   '-f',
  gyp info spawn args   'make',
  gyp info spawn args   '-I',
  gyp info spawn args   '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build/config.gypi',
  gyp info spawn args   '-I',
  gyp info spawn args   '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/addon.gypi',
  gyp info spawn args   '-I',
  gyp info spawn args   '/Users/USERNAME/.node-gyp/8.11.1/include/node/common.gypi',
  gyp info spawn args   '-Dlibrary=shared_library',
  gyp info spawn args   '-Dvisibility=default',
  gyp info spawn args   '-Dnode_root_dir=/Users/USERNAME/.node-gyp/8.11.1',
  gyp info spawn args   '-Dnode_gyp_dir=/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp',
  gyp info spawn args   '-Dnode_lib_file=/Users/USERNAME/.node-gyp/8.11.1/&lt;(target_arch)/node.lib',
  gyp info spawn args   '-Dmodule_root_dir=/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass',
  gyp info spawn args   '-Dnode_engine=v8',
  gyp info spawn args   '--depth=.',
  gyp info spawn args   '--no-parallel',
  gyp info spawn args   '--generator-output',
  gyp info spawn args   'build',
  gyp info spawn args   '-Goutput_dir=.' ]
  gyp verb command build []
  gyp verb build type Release
  gyp verb architecture x64
  gyp verb node dev dir /Users/USERNAME/.node-gyp/8.11.1
  gyp verb `which` succeeded for `make` /usr/bin/make
  gyp info spawn make
  gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
    c++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DLIBSASS_VERSION="3.3.6"' -I/Users/USERNAME/.node-gyp/8.11.1/include/node -I/Users/    USERNAME/.node-gyp/8.11.1/src -I/Users/USERNAME/.node-gyp/8.11.1/deps/openssl/config -I/Users/USERNAME/.node-gyp/8.11.1/deps/openssl/openssl/include -I/Users/USERNAME/.node-gyp/8.11.1/deps/uv/include -I/Users/USERNAME/.node-gyp/8.11.1/deps/zlib -I/Users/USERNAME/.node-gyp/8.11.1/deps/    v8/include -I../src/libsass/include  -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=c++11 -stdlib=libc++ -fno-threadsafe-statics -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw       -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp
  ^Cmake: *** Deleting file `Release/obj.target/libsass/src/libsass/src/ast.o'
  make: *** [Release/obj.target/libsass/src/libsass/src/ast.o] Interrupt: 2
  npm notice created a lockfile as package-lock.json. You should commit this file.
  npm WARN GulpFileName@1.0.0 No description
  npm WARN GulpFileName@1.0.0 No repository field.    
  </code></pre>
  
  <p>My global installed packages ( <code>npm -g ls --depth=0</code> ) are these:</p>
  
  <pre><code>/usr/local/lib
  ├── fsevents@1.2.4
  ├── gulp@3.9.1
  ├── gulp-cli@2.0.1
  ├── jscs@3.0.7
  ├── n@2.1.8
  ├── node-gyp@3.7.0
  ├── node-sass@4.9.0
  ├── npm@5.10.0
  └── vue-cli@2.9.3
  </code></pre>
  
  <p>The errors come when I run <code>npm install</code> with this <code>package.json</code>-file:</p>
  
  <pre><code>{
      "name": "GulpName",
      "author": "Johnny Bravo",
      "version": "1.0.0",
      "license": "GPL-2.0",
      "dependencies": {},
      "devDependencies": {
          "autoprefixer": "^8.6.3",
          "browserslist": "^3.2.8",
          "gulp": "^4.0.0",
          "gulp-concat": "^2.6.1",
          "gulp-postcss": "^7.0.1",
          "gulp-sass": "^2.0.0",
          "gulp-clean-css": "^3.9.4",
          "gulp-uglify": "^3.0.0"
      },
      "browserslist": [
          "last 2 version",
          "&gt; 1%",
          "safari &gt;= 5",
          "ie &gt;= 8",
          "chrome &gt;= 34",
          "ie_mob &gt;= 10",
          "opera &gt;= 23",
          "ios &gt;= 7",
          "ff &gt;= 7",
          "android &gt;= 4",
          "bb &gt;= 10"
      ]
  }
  </code></pre>
  
  <h2>My attempts:</h2>
  
  <ul>
  <li>I tried removing <code>~/.node-gyp</code> (and then refreshing the cache with <code>npm cache verify</code>).</li>
  <li>I tried uninstalling all the 'random' packages I could see with <code>npm -g ls --depth=0</code>. I had some <code>phantomjs</code> and a <code>http-server</code> or something like that.</li>
  <li>I tried installing <code>node-gyp</code>, <code>fsevents</code> and <code>node-sass</code> globally, hoping that I shouldn't go through those steps in the install-procedure. But I still get the same long error. </li>
  </ul>
  
  <p>... And obviously I did <code>rm -rf node_modules package-lock.json</code> followed by <code>npm install</code> a bazillion times throughout my attempt of solving this. </p>
  
  <p>I can see <a href="https://github.com/nodejs/node-gyp/issues/809" rel="noreferrer">several</a> <a href="https://github.com/sass/node-sass/issues/1991#issuecomment-306437979" rel="noreferrer">places</a>, something about people who gets similar errors, which is due to some yarn-thingy. I've haven't used any such thing. </p>
  
  <p>Do I really have to endure this tedious and long install-procedure every time I run <code>npm install</code>.</p>