# Installing Windows Build Tools

**URL:** <https://discourse.nodered.org/t/installing-windows-build-tools/54584>\
**Category:** General\
**Created:** [1 December 2021 15:32 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584 "2021-12-01T15:32:02Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [1 December 2021 15:32 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/1 "2021-12-01T15:32:02Z")

</div>

In the instructions for [installing on Windows](https://nodered.org/docs/getting-started/windows), under " Installing Node.js Windows Build Tools" it gives two options. It says to use the second one "If you wish to have the built-in Python v2.7 install exposed for use". If the second one is not used, can that give to the problem seen in [Facing problem in installing -node-arduino - #9 by binyameenaslam342](https://discourse.nodered.org/t/facing-problem-in-installing-node-arduino/54517/9) where the serialport install fails because it cannot find Python?

I don't use Windows, I am asking in order to help with that thread and this problem has appeared multiple times in the forum with different nodes pulling in the serialport.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [1 December 2021 16:23 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/2 "2021-12-01T16:23:34Z")

</div>

That actually needs updating now because newer versions of Node.js for windows have the build tools included, the old npm package is now deprecated. All you need to do now is simply install node.js from the official executable on the website.

One of the reasons I don't like Python is because of the myriad different versions available on different platforms. It is confusing, there should be a single official source. This is especially true on Windows.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [1 December 2021 16:28 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/3 "2021-12-01T16:28:23Z")

</div>

> [@TotallyInformation](#):
>
> install node.js from the official executable on the website.

Is that the one linked to from the node red Installing on Windows page? `https://nodejs.org/en/`  
If so, then do you know what may cause the missing python seen the linked thread?

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 09:29 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/4 "2021-12-02T09:29:22Z")

</div>

I have taken delivery of a brand new Windows 11 desktop yesterday 🙂  
(Last one was 10 years old!)

I've not installed NR on it even yet.

Got plenty of Arduinos 🙂

If you want to use me as a testbed - give me a shout and I'll follow your instructions (without deviation or alteration) 🙂

JFI It doesn't come with any version of python installed - if I type python in a cmd terminal - it jumps straight to offering Python 3.9 from the Windows app store

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [2 December 2021 15:08 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/5 "2021-12-02T15:08:27Z")

</div>

That would be great. I was just thinking of asking if anyone has a virgin windows VM they could try it on. I have extra RAM and larger SSD on my Xmas list which will give me enough to run VMs (under Ubuntu) but I can't at the moment.

I think the best thing to do would be to install as in the Running in Windows docs, Quick Start section. So not installing the build tools. Then see if node-red-node-arduino will install. @TotallyInformation thinks the build tools should be installed along with nodejs. If it fails with the missing python error (as in the thread I linked) then try to see if python is installed, and it is just that it is not in the path, or if it is not installed at all.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 16:24 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/6 "2021-12-02T16:24:29Z")

</div>

The instructions say download node 14 but I am being offered node 16 as LTS version - shall I use node 16?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [2 December 2021 16:44 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/7 "2021-12-02T16:44:31Z")

</div>

Maybe best to follow the docs for the moment, assuming 14 is there.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 16:49 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/8 "2021-12-02T16:49:20Z")

</div>

OK - installing last 14. version 14.8.2

I assume click to install tools (python etc?)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/5/25b86cf17a2f766800de272ec8e82a00f83cd710.png)

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [2 December 2021 16:53 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/9 "2021-12-02T16:53:27Z")

</div>

Yes, that needs to be added to the docs.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 17:05 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/10 "2021-12-02T17:05:14Z")

</div>

And todays award for most gobblygook log message goes to...

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/4/d45474ac748e7946bf87e66a9ea9c8b6825b23b0.png)

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 17:51 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/11 "2021-12-02T17:51:57Z")

</div>

Its suggested rebooting after that so I have

Ran the version check in a cmd window

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/f/af8e0cb89cb0a172f224b88b106b8b103fcad46a.png)

did the  
`npm install -g --unsafe-perm node-red`

got

```auto
C:\Users\siwal>npm install -g --unsafe-perm node-red
C:\Users\siwal\AppData\Roaming\npm\node-red-pi -> C:\Users\siwal\AppData\Roaming\npm\node_modules\node-red\bin\node-red-pi
C:\Users\siwal\AppData\Roaming\npm\node-red -> C:\Users\siwal\AppData\Roaming\npm\node_modules\node-red\red.js

> bcrypt@5.0.1 install C:\Users\siwal\AppData\Roaming\npm\node_modules\node-red\node_modules\bcrypt
> node-pre-gyp install --fallback-to-build

[bcrypt] Success: "C:\Users\siwal\AppData\Roaming\npm\node_modules\node-red\node_modules\bcrypt\lib\binding\napi-v3\bcrypt_lib.node" is installed via remote
+ node-red@2.1.4
added 295 packages from 374 contributors in 39.448s

```

then

```auto
C:\Users\siwal>node-red
2 Dec 17:49:52 - [info]

Welcome to Node-RED
===================

2 Dec 17:49:52 - [info] Node-RED version: v2.1.4
2 Dec 17:49:52 - [info] Node.js version: v14.18.2
2 Dec 17:49:52 - [info] Windows_NT 10.0.22000 x64 LE
2 Dec 17:49:52 - [info] Loading palette nodes
2 Dec 17:49:53 - [info] Settings file : C:\Users\siwal\.node-red\settings.js
2 Dec 17:49:53 - [info] Context store : 'default' [module=memory]
2 Dec 17:49:53 - [info] User directory : C:\Users\siwal\.node-red
2 Dec 17:49:53 - [warn] Projects disabled : editorTheme.projects.enabled=false
2 Dec 17:49:53 - [info] Flows file : C:\Users\siwal\.node-red\flows.json
2 Dec 17:49:53 - [info] Creating new flow file
2 Dec 17:49:53 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

2 Dec 17:49:53 - [info] Server now running at http://127.0.0.1:1880/
2 Dec 17:49:53 - [info] Starting flows
2 Dec 17:49:53 - [info] Started flows

```

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 17:56 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/12 "2021-12-02T17:56:39Z")

</div>

node-red-node-arduino install log

```auto
2021-12-02T17:53:32.813Z Install : node-red-node-arduino 0.3.1

2021-12-02T17:53:32.818Z npm.cmd install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-node-arduino@0.3.1
2021-12-02T17:53:46.363Z [out] 
2021-12-02T17:53:46.363Z [out] > @serialport/bindings@8.0.8 install C:\Users\siwal\.node-red\node_modules\@serialport\bindings
2021-12-02T17:53:46.363Z [out] > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
2021-12-02T17:53:46.363Z [out] 
2021-12-02T17:53:46.862Z [err] prebuild-install WARN
2021-12-02T17:53:46.863Z [err] install No prebuilt binaries found (target=14.18.2 runtime=node arch=x64 libc= platform=win32)
2021-12-02T17:53:46.871Z [out] 

2021-12-02T17:53:46.871Z [out] C:\Users\siwal\.node-red\node_modules\@serialport\bindings>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild ) 

2021-12-02T17:53:56.174Z [out] Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.

2021-12-02T17:53:57.248Z [out] serialport.cpp

2021-12-02T17:53:57.248Z [out] serialport_win.cpp

2021-12-02T17:53:57.248Z [out] win_delay_load_hook.cc

2021-12-02T17:53:58.738Z [out] Creating library C:\Users\siwal\.node-red\node_modules\@serialport\bindings\build\Release\bindings.lib and object C:\Users\siwal\.node-red\node_modules\@serialport\bindings\build\Release\bindings.exp

2021-12-02T17:53:59.134Z [out] bindings.vcxproj -> C:\Users\siwal\.node-red\node_modules\@serialport\bindings\build\Release\\bindings.node

2021-12-02T17:53:59.195Z [out] 
2021-12-02T17:53:59.195Z [out] > serialport@8.0.8 postinstall C:\Users\siwal\.node-red\node_modules\serialport
2021-12-02T17:53:59.195Z [out] > node thank-you.js
2021-12-02T17:53:59.195Z [out] 
2021-12-02T17:53:59.243Z [out] e[96me[1mThank you for using serialport!e[96me[1m
2021-12-02T17:53:59.243Z [out] e[0me[96mIf you rely on this package, please consider supporting our open collective:e[22me[39m
2021-12-02T17:53:59.243Z [out] > e[94mhttps://opencollective.com/serialport/donatee[0m
2021-12-02T17:53:59.243Z [out] 
2021-12-02T17:53:59.243Z [out] 
2021-12-02T17:53:59.302Z [err] npm notice created a lockfile as package-lock.json. You should commit this file.
2021-12-02T17:53:59.303Z [out] + node-red-node-arduino@0.3.1
2021-12-02T17:53:59.303Z [out] added 78 packages from 48 contributors in 25.661s
2021-12-02T17:53:59.320Z rc=02021-12-02T17:53:32.813Z Install : node-red-node-arduino 0.3.1

2021-12-02T17:53:32.818Z npm.cmd install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-node-arduino@0.3.1
2021-12-02T17:53:46.363Z [out] 
2021-12-02T17:53:46.363Z [out] > @serialport/bindings@8.0.8 install C:\Users\siwal\.node-red\node_modules\@serialport\bindings
2021-12-02T17:53:46.363Z [out] > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
2021-12-02T17:53:46.363Z [out] 
2021-12-02T17:53:46.862Z [err] prebuild-install WARN
2021-12-02T17:53:46.863Z [err] install No prebuilt binaries found (target=14.18.2 runtime=node arch=x64 libc= platform=win32)
2021-12-02T17:53:46.871Z [out] 

2021-12-02T17:53:46.871Z [out] C:\Users\siwal\.node-red\node_modules\@serialport\bindings>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild ) 

2021-12-02T17:53:56.174Z [out] Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.

2021-12-02T17:53:57.248Z [out] serialport.cpp

2021-12-02T17:53:57.248Z [out] serialport_win.cpp

2021-12-02T17:53:57.248Z [out] win_delay_load_hook.cc

2021-12-02T17:53:58.738Z [out] Creating library C:\Users\siwal\.node-red\node_modules\@serialport\bindings\build\Release\bindings.lib and object C:\Users\siwal\.node-red\node_modules\@serialport\bindings\build\Release\bindings.exp

2021-12-02T17:53:59.134Z [out] bindings.vcxproj -> C:\Users\siwal\.node-red\node_modules\@serialport\bindings\build\Release\\bindings.node

2021-12-02T17:53:59.195Z [out] 
2021-12-02T17:53:59.195Z [out] > serialport@8.0.8 postinstall C:\Users\siwal\.node-red\node_modules\serialport
2021-12-02T17:53:59.195Z [out] > node thank-you.js
2021-12-02T17:53:59.195Z [out] 
2021-12-02T17:53:59.243Z [out] e[96me[1mThank you for using serialport!e[96me[1m
2021-12-02T17:53:59.243Z [out] e[0me[96mIf you rely on this package, please consider supporting our open collective:e[22me[39m
2021-12-02T17:53:59.243Z [out] > e[94mhttps://opencollective.com/serialport/donatee[0m
2021-12-02T17:53:59.243Z [out] 
2021-12-02T17:53:59.243Z [out] 
2021-12-02T17:53:59.302Z [err] npm notice created a lockfile as package-lock.json. You should commit this file.
2021-12-02T17:53:59.303Z [out] + node-red-node-arduino@0.3.1
2021-12-02T17:53:59.303Z [out] added 78 packages from 48 contributors in 25.661s
2021-12-02T17:53:59.320Z rc=0

```

I'll have to dig out an arduino and install firmata but I think that everything has gone well AFAICT

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [2 December 2021 20:55 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/13 "2021-12-02T20:55:24Z")

</div>

Excellent. So the conclusion seems to be that we should tell users to select that box to install the tools, and remove the section in the docs about installing the build tools manually. Does that make sense?

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [2 December 2021 21:01 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/14 "2021-12-02T21:01:27Z")

</div>

Yes - and to follow advice to reboot after node.js is installed.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 December 2021 10:34 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/15 "2021-12-03T10:34:38Z")

</div>

So summarising the docs changes required on [Running on Windows : Node-RED](https://nodered.org/docs/getting-started/windows)

1. In Quick Start \> Install Node.js: Add note to say click the checkbox to install the build tools. Also to reboot after install of nodejs.

2. Remove the section 'Installing Node.js Windows Build Tools'. The package suggested in that section is no longer maintained as it has been superseded by the version that comes with nodejs.

3. Move the Notes section currently at the end of Installing Node.js Windows Build Tools up to the end of Quick Start. At least I think that is where it should go.

Unfortunately my primary broadband is down due to a falling tree taking out the fibre in a storm last weekend so I only have access via the phone at the moment. It could be another week before it is up again. Then I am away for two weeks so I probably won't be able to fork the docs and create a PR for several weeks. If someone would like to volunteer to do it before then that would be great. Otherwise I will do it when I can.

I have also just noticed that on the [Supported Node Versions](https://nodered.org/docs/faq/node-versions) page, under Installing Node.js the 'Node provides guides' link does not lead anywhere helpful for Windows. The sentence 'If you are running on a ...' should be extended to include a link to [the Windows guide](https://nodered.org/docs/getting-started/windows) for Windows users. In fact it should also say to use the Pi guide for Ubuntu and other Debian OSs.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [4 December 2021 09:58 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/16 "2021-12-04T09:58:49Z")

</div>

It would be nice to know what to tell anyone who installs without ticking the tools checkbox how to later install the tools. Could you try re-running the nodejs install (without uninstalling it, initially) and see if it gives you the tools option again?

---

<div class="post-metadata">

**Author:** ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)\
**Post date:** [4 December 2021 13:49 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/17 "2021-12-04T13:49:34Z")

</div>

Hello @Colin .. i can confirm that re-running the windows nodejs v14.18.2 installer, you will be presented with 3 options .. to Change, Repair or Remove nodejs. If you click Change and click Next you can then choose to install the build tools.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [4 December 2021 13:53 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/18 "2021-12-04T13:53:24Z")

</div>

It is also possible to install the libraries and Python manually of course. The libraries and C/C++ compiler are part of visual studio which has a component installer that is freely installable.

Much easier to do it via the node.js install of course.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [4 December 2021 16:48 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/19 "2021-12-04T16:48:57Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/9/79a0f2aae52938e5bb2f04e5057e1ff60b7c7d58.png)

I clicked on change and then 2 screens further on it gave me the option as before

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/b/9b81c23773d6e5098c0df522de619af76bf11c04.png)

edit just saw that @UnborN had already answered 🙂

---

<div class="post-metadata">

**Author:** ![binyameenaslam342](https://avatars.discourse-cdn.com/v4/letter/b/8e8cbc/32.png) [@binyameenaslam342](https://discourse.nodered.org/u/binyameenaslam342)\
**Post date:** [4 December 2021 17:07 UTC](https://discourse.nodered.org/t/installing-windows-build-tools/54584/20 "2021-12-04T17:07:05Z")

</div>

I tick mark this too when I reinstalled nodejs but it did not work either. One single error because of any reason and you have to reinstall it again or do yourself a favour, move to Linux.

[Next page](https://discourse.nodered.org/t/installing-windows-build-tools/54584.md?page=2)
