It's not a nightmare, but I've yet to succeed. npm2nix and node2nix struggle. napalm puts up a good effort, but doesn't quite work either. The biggest sticking point right now is that cjb used a custom DHT implementation with some patches, and I've gotta integrate that somehow.
I will be overjoyed if somebody else writes a working Nix flake. I've tried three times so far, and I bet it'll take five total.