Need private packages and team management tools?Check out npm Teams »


2.0.0 • Public • Published


npm version dependencies

On Windows? Want to compile native Node modules? Install the build tools with this one-liner:

npm install --global --production windows-build-tools


After installation, npm will automatically execute this module, which downloads and installs Visual C++ Build Tools 2017, provided free of charge by Microsoft. These tools are required to compile popular native modules. It will also install Python 2.7, configuring your machine and npm appropriately.

To install the Visual C++ Build Tools 2015 (required for Node 7 and below), please use windows-build-tools@1.4.2.

💡 [Windows Vista / 7 only] requires .NET Framework 4.5.1 (Currently not installed automatically by this package)

Both installations are conflict-free, meaning that they do not mess with existing installations of Visual Studio, C++ Build Tools, or Python. If you see anything that indiciates otherwise, please file a bug.


  • Visual C++ Compilers (targeting x86, X64 and ARM)
  • Visual C++ headers & libraries (CRT & STL)
  • Visual C++ build scripts (targeting Windows desktop)
  • Microsoft Build Tools 2017 (MSBuild)
  • Windows SDK 10 (optional, on by default)
  • ATL and MFC (optional, on by default)
  • C++ Build tools specific command prompts


npm [--add-python-to-path] [--python-mirror=''] [--proxy=''] [--debug] [--strict-ssl] [--resume] [--sockets=5] [--vcc-build-tools-parameters=''] install --global windows-build-tools

Optional arguments:

  • --add-python-to-path: Add Python to the environment, allowing you to type python.exe in any shell. Defaults to false.
  • --python-mirror: Use a given mirror to download Python (like --python_mirror= You can alternatively set a PYTHON_MIRROR environment variable.
  • --proxy: Use a given proxy. You can alternatively set a PROXY environment variable.
  • --debug: Be extra verbose in the logger output. Equal to setting the environment variable DEBUG to *.
  • --strict-ssl: Enables "Strict SSL" mode. Defaults to false.
  • --resume: By default, windows-build-tools will resume aborted downloads. Set to false to disable.
  • --sockets: Specifies the number of http sockets to use at once (this controls concurrency). Defaults to infinity.
  • --vcc-build-tools-parameters: Specifies additional parameters for the Visual C++ Build Tools 2015. See below for more detailed usage instructions.
  • --silent: The script will not output any information.

Supplying Parameters to the VCC Build Tools

You can pass additional parameters directly to the VCC Build Tools installer. This tool does not check if the parameters make sense - passing incorrect parameters might break the whole installation. The available parameters are documented here.

Supply parameters to windows-build-tools as a JSON array. Here's quick example (note the double quotes):

npm --vcc-build-tools-parameters='[""--allWorkloads""]' install --global windows-build-tools

Support & Help

This package currently only handles the most common use case, none of the edge cases. If you encounter errors, we'd greatly appreciate error reports (and even pull requests). This is currently tested on Windows 10.

Where is Python installed?

It's saved under %USERPROFILE%\.windows-build-tools\python27.

'Python' is not recognized as a command

To not mess with your machine in unnecessary ways, Python is only installed to disk and configured with npm. If you'd like for the python command to work in cmd.exe and PowerShell, add the folder %USERPROFILE%\.windows-build-tools\python27 to your environment variables.

License & Credits

The Python installation was made possible by Ali Hajimirza, who kindly wrestled with Python's MSIs until they surrendered.

Copyright (C) 2018 Felix Rieseberg. Licensed MIT. For more details, please see LICENSE.