It's not the first one addressing these problems.
Nix and ied (which borrowed from Nix) got these problems pretty much solved.
I don't understand what spoke against these approaches?
I mean okay, nix has its own language, which is probably a turnoff for JS devs, but ied?