{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; }; systems.url = "github:nix-systems/default"; }; outputs = {flake-parts, ...} @ inputs: flake-parts.lib.mkFlake {inherit inputs;} { systems = import inputs.systems; perSystem = { pkgs, system, ... }: rec { devShells.default = pkgs.mkShell { packages = packages.slides.nativeBuildInputs; }; packages.slides = pkgs.stdenvNoCC.mkDerivation rec { name = "slides"; src = ./.; # because slides/assets is a symlink npmRoot = "slides"; npmDeps = pkgs.fetchNpmDeps { src = "${src}/slides"; hash = "sha256-GJ10or/LERFOsBG6CqnRFXnXSEZB7+0C5CV6t8X/Um8="; }; nativeBuildInputs = [ pkgs.npmHooks.npmConfigHook pkgs.nodejs ]; buildPhase = '' cd slides npm run build ''; installPhase = '' mv dist $out ''; }; }; }; }