Honestly, coming from PHP, I really don't like the way dependencies are handled in JavaScript.
Using require()
or import
either gives me a singleton object, or a class that I have to
instantiate myself.
The DI container in Laravel is wonderful, and allows you to basically just ask for a dependency in a class constructor and it hands it to you. You can bind things to the container, but you can also resolve things without explicitly binding them, which I think is awesome.