Idk about “unholy”. I wish I could make eshell (in Emacs) my full time shell, but certain things like nvm don’t work, etc.
seriously, it's so much tidier!
Where I work we use the nix package manager. Making sure your team is using the same version of node is just a few lines of config away:
with (import <nixpkgs> {});
mkShell {
buildInputs [ nodejs-8_x ];
}
Pinning the whole package tree is just a few more lines away and offers you full reproducibility but I omitted it for brevity.Another upside is that this approach is language agnostic and works for all tools packaged in the nix package repository.