Just a couple days I got into a conversation with my coworker about UI stuff. I had to test something against our dev UI. Last time I did UI work was back when having index.html, img/, css/ and js/ directories with maybe a script or two was the norm. I had to fucking run make and I still have no fucking idea what was going on when I ran make which compiled a bunch of shit. There was all this NPM shit going on (isn't NPM part of Node.js which is a server-side framework? WTF?). I got it working and promptly noped the fuck out that horror show.
The web is a giant fucking pile of dog shit in 2016.
I'm a content guy who knows enough web dev to be dangerous.
I made 3 manual edits to a css file to fix a couple of incorrect background colours in our web content the other day. I was a good boy and made a pull request for those same changes in the git repo.
Our developer explained that he doesn't actually edit the css file. He would have to work out the change in the hue (as a percent of the base colour) and update that in the sass file, then use gulp to compile a fresh version of the output css.
He said that this was a simple build process to get set up on my machine so I could do it myself in the future.
He uses a mac. I use windows.
4 hours later after hitting so many hurdles I finally got it working. I can't even recall all the issues, but do recall that I side stepped them all by moving to a particular version of npm which actually used a sane system for storing the dependencies.
With out that version of npm this simple build process required 15,000 files in my node_modules subdirectory in a structure so deep and convoluted Windows couldn't create them....
Of course now that I'm armed with the toolset to make these changes I've reverted to testing changes in chrome dev tools and emailing him requests.
> this simple build process required 15,000 files in my node_modules subdirectory
You would think people learned a lesson about packaging every tiny item as a dependency with left pad, but apparently yesterday it was downloaded 16104 times.
Aaah, good luck. For me it's basically gotten to the point where if the build doesn't immediately work on Windows, I just fire up a Linux VM and work off of that.
And that's not just for front-end projects, but for open-source projects in general. Windows support is often really lacking in an environment where devs seem to use Linux and Mac almost exclusively.
That was actually my first response too... I set up the build process on my linux test server while I continued to battle to get it working on my daily drive win10 machine.
a big problem with npm is, that a lot of package authors don't use the .npmignore [0] which leads to EVERYONE downloading your source/, test/ and docs/ folder even if only that one file in build/ is needed.
That, combined with the micromodule mindset, leads to insanity
That's a very bad way of handling it. When will people learn that you can't rely on everyone being a good citizen? Is it really so hard to realize that you need to make your technology sane from the very beginning?
Sass is awesome, and one of the few pieces of the 'compilation toolchain hell' I _don't_ hate.
But you ideally shouldn't have your CSS build product in the repo if you're using SASS. That would avoid the confusion of editing the wrong file (the compiled output artifact, which ought not to be in the repo).
It doesn't have to be this way. Unfortunately, we live in a world where younger developers "show their skill" by making things overcomplicated in order to create unnecessary barriers to entry to our proto-profession. My usual response is to refuse to work on such a project if I don't have the authority to change how things are done to make them more sane.
“make and npm” doesn’t sound overcomplicated. It sounds like someone didn’t take the time to find out what they were working with, didn’t really need to because it’s not their area, and decided to have an opinion about it anyway.
The web is a giant fucking pile of dog shit in 2016.