4 ms·
Wow, that resonates quite a lot with me, though I'm not 55 yet. I started my career as a software engineer with web development in the 90's. Everything seemed
by neya 6y ago
Wow, that resonates quite a lot with me, though I'm not 55 yet.
I started my career as a software engineer with web development in the 90's. Everything seemed simpler. Literally.
Then, fast forward to 2020. I'll cite you an example of what happened EXACTLY yesterday. I have a web application which is complete and ready to be deployed. It's a backoffice application for one of our e-commerce sites. It's built using Phoenix, so there is a separate assets folder which contains a webpack config and its own package.json as well.
The frontend updates require me to update the assets manifest as well. So, we've setup CI for it to automatically do that for each deploy. So, as usual, it simply runs npm install, but, suddenly, everything broke. Remember, this was fine until our previous deploy. It was some weird error from node about not being able to do something with Babel. I had to spend about almost an hour to figure out it was coming from some other package that was making use of Babel. (If you're interested the error is this one[1])).
OK fine, we upgraded the babel version as indicated in that issue thread. However, it wasn't compatible with some other package on the OS we were running on. So, now I had to downgrade the entire node version itself to something we knew that worked.
We lost a good amount of engineering time simply because of this unwanted complexity. Remember, all I wanted to do was JUST deploy. Our backend code was perfectly fine. Just for one new added feature, we had to pay a price with our time. This is hardly an exception, this is becoming in the norm.
[1] https://github.com/nodejs/node/issues/32852 https://github.com/nodejs/node/issues/32852
- etblg 6y agoYou may want to use `npm ci` instead of `npm install` on automated processes like CI. `npm ci` will install the package versions from `package-lock.json` that presumably worked while developing, `npm install` will try to install the latest that match the criteria in `package.json`