title: yarn failing from a node-gyp bug
body: <p>I am trying to run <code>yarn --ignore-engines</code> on my project. I am getting this error message:</p>
  <pre><code>error C:\Users\Jerome\mono\node_modules\node-sass: Command failed.
  Exit code: 1
  Command: node scripts/build.js
  Arguments:
  Directory: C:\Users\Jerome\mono\node_modules\node-sass
  Output:
  Building: C:\Program Files (x86)\nodejs\node.exe C:\Users\Jerome\mono\node_modules\node-sass\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 [
  gyp verb cli   'C:\\Program Files (x86)\\nodejs\\node.exe',
  gyp verb cli   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\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 verb cli ]
  gyp info using node-gyp@3.8.0
  gyp info using node@16.2.0 | win32 | ia32
  gyp verb command rebuild []
  gyp verb command clean []
  gyp verb clean removing &quot;build&quot; directory
  gyp verb command configure []
  gyp verb check python checking for Python executable &quot;C:\Users\Jerome\.windows-build-tools\python27\python.exe&quot; in the PATH
  gyp verb `which` succeeded C:\Users\Jerome\.windows-build-tools\python27\python.exe C:\Users\Jerome\.windows-build-tools\python27\python.exe
  gyp verb check python version `C:\Users\Jerome\.windows-build-tools\python27\python.exe -c &quot;import sys; print &quot;2.7.15
  gyp verb check python version .%s.%s&quot; % sys.version_info[:3];&quot;` returned: %j
  gyp verb get node dir no --target version specified, falling back to host node version: 16.2.0
  gyp verb command install [ '16.2.0' ]
  gyp verb install input version string &quot;16.2.0&quot;
  gyp verb install installing version: 16.2.0
  gyp verb install --ensure was passed, so won't reinstall if already installed
  gyp verb install version is already installed, need to check &quot;installVersion&quot;
  gyp verb got &quot;installVersion&quot; 9
  gyp verb needs &quot;installVersion&quot; 9
  gyp verb install version is good
  gyp verb get node dir target node version installed: 16.2.0
  gyp verb build dir attempting to create &quot;build&quot; dir: C:\Users\Jerome\mono\node_modules\node-sass\build
  gyp verb build dir &quot;build&quot; dir needed to be created? C:\Users\Jerome\mono\node_modules\node-sass\build
  gyp verb find vs2017 Found installation at: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
  gyp verb find vs2017   - Found Microsoft.VisualStudio.Component.Windows10SDK.19041
  gyp verb find vs2017   - Found Microsoft.VisualStudio.Component.VC.Tools.x86.x64
  gyp verb find vs2017   - Found Microsoft.VisualStudio.VC.MSBuild.Base
  gyp verb find vs2017   - Using this installation with Windows 10 SDK
  gyp verb find vs2017 using installation: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
  gyp verb build/config.gypi creating config file
  gyp verb build/config.gypi writing out config file: C:\Users\Jerome\mono\node_modules\node-sass\build\config.gypi
  (node:12932) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
  (Use `node --trace-deprecation ...` to show where the warning was created)
  gyp verb config.gypi checking for gypi file: C:\Users\Jerome\mono\node_modules\node-sass\config.gypi
  gyp verb common.gypi checking for gypi file: C:\Users\Jerome\mono\node_modules\node-sass\common.gypi
  gyp verb gyp gyp format was not specified; forcing &quot;msvs&quot;
  gyp info spawn C:\Users\Jerome\.windows-build-tools\python27\python.exe
  gyp info spawn args [
  gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp\\gyp\\gyp_main.py',
  gyp info spawn args   'binding.gyp',
  gyp info spawn args   '-f',
  gyp info spawn args   'msvs',
  gyp info spawn args   '-G',
  gyp info spawn args   'msvs_version=2015',
  gyp info spawn args   '-I',
  gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\build\\config.gypi',
  gyp info spawn args   '-I',
  gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp\\addon.gypi',
  gyp info spawn args   '-I',
  gyp info spawn args   'C:\\Users\\Jerome\\.node-gyp\\16.2.0\\include\\node\\common.gypi',
  gyp info spawn args   '-Dlibrary=shared_library',
  gyp info spawn args   '-Dvisibility=default',
  gyp info spawn args   '-Dnode_root_dir=C:\\Users\\Jerome\\.node-gyp\\16.2.0',
  gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp',
  gyp info spawn args   '-Dnode_lib_file=C:\\Users\\Jerome\\.node-gyp\\16.2.0\\&lt;(target_arch)\\node.lib',
  gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\Jerome\\mono\\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   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\build',
  gyp info spawn args   '-Goutput_dir=.'
  gyp info spawn args ]
  gyp verb command build []
  gyp verb build type Release
  gyp verb architecture ia32
  gyp verb node dev dir C:\Users\Jerome\.node-gyp\16.2.0
  gyp verb found first Solution file build/binding.sln
  gyp verb using MSBuild: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
  gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
  gyp info spawn args [
  gyp info spawn args   'build/binding.sln',
  gyp info spawn args   '/nologo',
  gyp info spawn args   '/p:Configuration=Release;Platform=Win32'
  gyp info spawn args ]
  gyp ERR! UNCAUGHT EXCEPTION
  gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe ENOENT
  gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
  gyp ERR! stack     at onErrorNT (node:internal/child_process:480:16)
  gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
  gyp ERR! System Windows_NT 10.0.19042
  gyp ERR! command &quot;C:\\Program Files (x86)\\nodejs\\node.exe&quot; &quot;C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp\\bin\\node-gyp.js&quot; &quot;rebuild&quot; &quot;--verbose&quot; &quot;--libsass_ext=&quot; &quot;--libsass_cflags=&quot; &quot;--libsass_ldflags=&quot; &quot;--libsass_library=&quot;
  gyp ERR! cwd C:\Users\Jerome\mono\node_modules\node-sass
  gyp ERR! node -v v16.2.0
  gyp ERR! node-gyp -v v3.8.0
  gyp ERR! This is a bug in `node-gyp`.
  </code></pre>
  <p>From some other SO posts I believe the cause of this is because I have not installed <code>windows-build-tools</code> properly. Although when I try to run <code>npm i -g windows-build-tools</code> it idles for over an hour and never executes.</p>
  <pre><code>C:\Users\Jerome\mono&gt;npm install --global windows-build-tools
  npm WARN deprecated har-validator@5.1.5: this library is no longer supported
  npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
  [                  ] - reify:resolve: timing reifyNode:node_modules/windows-build-tools/node_modules/ajv Completed in 357ms
  </code></pre>