TLDR: FUCK ALL BUNDLERS
There are now hundreds of bundlers. The truth is that you don't need any of them. They just get in the way. You need to be thinking how to get rid of all 3rd party software so that your focus is 100% on the product you are creating and not on a bundler that works today but will break or get unpublished tomorrow.
Let's say you have a JavaScript application that has 3 files:
ui.js script.js analytics.js
And for some stupid reason you need to create bundle.js
(usually you don't need to create it as you can just <script src>
all these files in your app one by one).
The solution is to use cat
– the universal Unix bundler. It's always available on all systems going back to 1970, doesn't require an installation or upgrades, and it works at the speed of a hard drive.
Run this command:
cat ui.js script.js analytics.js > bundle.js
And you have your bundle.js that you didn't really need in the first place.
Or even better, just write your entire application in a single script.js file like I do.
Or do whatever you want, put npm in docker, wrap it in vagrant, put it on ec2 and delete node_modules directories all day, and complain that your deploy takes 25 minutes.
See you next time!