flake.nix

flake.nix
{
  description = "Node.js dev env";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system:
      let pkgs = nixpkgs.legacyPackages.${system};
      in {
        devShells.default = pkgs.mkShell {
          buildInputs = [
            pkgs.fnm
          ];

          shellHook = ''
            eval "$(fnm env --use-on-cd --shell bash)"
          '';
        };
      });
}
~/.config/nix/nix.conf
experimental-features = nix-command flakes