diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix index 41c322013877..eb8b847960c5 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/default.nix +++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix @@ -1,4 +1,5 @@ { + lib, stdenvNoCC, callPackage, jq, @@ -6,6 +7,7 @@ cacert, makeSetupHook, pnpm, + yq, }: { fetchDeps = @@ -38,11 +40,18 @@ jq moreutils pnpm + yq ]; installPhase = '' runHook preInstall + lockfileVersion="$(yq -r .lockfileVersion pnpm-lock.yaml)" + if [[ ''${lockfileVersion:0:1} -gt ${lib.versions.major pnpm.version} ]]; then + echo "ERROR: lockfileVersion $lockfileVersion in pnpm-lock.yaml is too new for the provided pnpm version ${lib.versions.major pnpm.version}!" + exit 1 + fi + export HOME=$(mktemp -d) pnpm config set store-dir $out # Some packages produce platform dependent outputs. We do not want to cache those in the global store