{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in { default = pkgs.mkShell { packages = [ pkgs.nodejs pkgs.yarn ]; nativeBuildInputs = [ pkgs.yarnConfigHook ]; # Must be named this for pkgs.yarnConfigHook yarnOfflineCache = pkgs.fetchYarnDeps { yarnLock = ./yarn.lock; }; # PLAYWRIGHT_BROWSERS_PATH = pkgs.playwright-driver.browsers; # PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1"; # Optional but often needed in Nix sandboxes: # XDG_CACHE_HOME = "$TMPDIR/xdg-cache"; # XDG_CONFIG_HOME = "$TMPDIR/xdg-config"; # XDG_DATA_HOME = "$TMPDIR/xdg-data"; }; } ); }