Because some people are unfortunately - stupid, and they still didn't notice it's 2017 not 1987... and they'll make everything to add themselves some work because their IDE/Text Editor is so old or so lame, it cannot properly support stupid, configurable tab char.
And the second part of the issue is that node.js architecture is a DISASTER. All the way. Almost nothing is working like it should. Starting from lack of working scheduler, and writing scheduling code "by hand", to improperly working foreach loops and no usable error support, ending with nested callback code which is WORSE and harder to maintain than goto-spaghetti written in the early days of '90 Microsoft Basic.
I'm not surprised that group of devs comming from an enviroment of people who cannot get a design of stupid "for" loop well - is having issue with a concept so "complicated" as tab character... and to add to the stupididy, all they can say is "tabs are evil". Well that's a great argument ;)
- Tabs make code easier to read for different people on different devices (especially different screen aspect ratios)
- Require less typing
- You don't need to count characters so it's much easier to not make formatting mistakes
- You don't need to argue like an idiot, about using 2, 4 or 5 spaces... you set it in editor
- Are designed to indent not to separate words, like space
"Tabs are evil" is like arguing that page breaks shouldn't be used in DTP... let's align using newline.
No, the proper sentence is not "tabs are evil", but "we're too stupid to make our work easier, so we'll be working like in the '90s". It's not some C Kernel code where using spaces is justified at least historically, node is supposed to be "modern" way of programming modern interfaces.
JS is great for UI's developement, and totally SUCKS for the server side. It's interesting how even the "style guide" tells how badly it's designed for serverside code, and how bad this "coding guide" is, because AGAIN... some genius thought that "one size fits all", to propagate this moronic myth of "code which could be used both on client and on the server"... So do yourself a favour, if you're writing serverside - stay away from node. Use golang, scala, c#, php, c++, D... anything!
And don't allow anything related to JS to pollute your coding enviroment too much. These coding "requirements"... that happens when you want to create something that "fits all".... as, eg. using setTimeout it perfectly fine on clientside UI developement, but usually not a very good idea on the server-side.
Although I have been using tabs for all my frontend development
As any sane human being would do nowdays, if he can...