Get rid of bower, npm, yarn, gulp, […]

Jojo
2 min readJan 3, 2017

--

For the love of God, do it now.

First of all, why on earth is it suddenly okay to add compilation steps to javascript? The major advantage of javascript and html and the entire web ecosystem is that it doesn’t have a compilation step, that I can just click on an html and it immediately shows whatever it contains, exactly as if served from a webserver. Gulp, bower, npm and all these build tools destroy this simple process.. and for what?!

Most projects that I look at, I meticulously convert away from these tools not because I want to but because there is no other way to get a grip on how they even produce their output and how they work and what their file layout is.

I always end up with several bower_components all over the place. Several node_modules folders. Several nested bower_components folders even, good luck trying to figure out which of these dependencies are included how and where. Some projects — hell at this point, I’d say most javascript projects use both bower and npm. What on earth is going on? I now have such deeply nested filesystem trees that Windows doesn’t even let me delete them anymore because the filepaths exceed the operating system limit and what do I get in return? No, seriously. Tell me, because I don’t know.

Every library that I download, I will have to maintain to some degree, just to make this clear up front. Do npm and bower users not get that? If there are 20 folders in my components folder, I will have to deal with that somehow. I will have to copy or otherwise extract what I need from there in some extra step.

We used to have a world where I could download a single .js file and include it in my html and I would be done. What went wrong? What makes it so damn important for me to “automatically” bloat my project up? My most famous example is OpenUI5. I dare you to figure out how files get served there, but I’ll be on my journey now to figure out how Polymer does it.

This is an appeal to all javascript open source projects: Remove them. Just remove it all. I can guarantee to you that you don’t actually need these tools. If you truly need to download external dependencies, just download them as git submodules. Don’t put some gulp script there that makes me somehow have to have a local gulp sometimes and sometimes it works with a global gulp instance and then.. jesus it started again. I cannot believe the amounts of bullshit that I have to go through nowadays just to use a javascript library.

(EDIT) This is the node_modules folder from polymer:

--

--