pnpmBuildHook
pnpm یک مدیر بستهٔ سازگار با NPM است که بر افزایش سرعت مدیریت و کاهش فضای دیسک تمرکز دارد.
قلاب pnpmBuildHook در Nixpkgs، فاز ساخت پیشفرض را برای ساخت بستههایی که از pnpm استفاده میکنند، بازنویسی میکند.
{ lib, stdenv, fetchFromGitHub, fetchPnpmDeps, pnpmConfigHook, pnpmBuildHook, makeBinaryWrapper, pnpm_10, }: let pnpm = pnpm_10; in stdenv.mkDerivation (finalAttrs: { pname = "coolPackages"; version = "1.0"; src = fetchFromGitHub { owner = "JaneCool"; repo = "coolpackage"; tag = finalAttrs.version; hash = lib.fakeHash; }; __structuredAttrs = true; strictDeps = true; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; fetcherVersion = 4; hash = lib.fakeHash; }; nativeBuildInputs = [ pnpmConfigHook pnpmBuildHook makeBinaryWrapper ]; pnpmBuildScript = "build"; pnpmBuildFlags = [ "--mode" "production" ]; pnpmWorkspaces = [ "test" ]; installPhase = '' runHook preInstall mkdir "$out" cp -r dist/. "$out" runHook postInstall ''; meta = { description = "very cool package that does cool things"; mainProgram = "cool"; }; })
متغیرهای کنترلکننده pnpmBuildHook
متغیرهای اختصاصی pnpm
pnpmBuildScript
اسکریپت اجراشده برای ساخت بسته را کنترل میکند؛ بهصورت پیشفرض این اسکریپت build است.
pnpmFlags
پرچمهای استفادهشده برای همه فراخوانیهای pnpm در تمام هوکهای محلی این derivation / اشتقاق ساخت را کنترل میکند.
pnpmBuildFlags
پرچمهای ارسالشده فقط به فراخوانی اسکریپت ساخت pnpm را کنترل میکند.
dontPnpmBuild
اجرای خودکار pnpmBuildHook را غیرفعال میکند. فرآیند ساخت در صورت نیاز همچنان میتواند بهصورت دستی اجرا شود، برای مثال:
{
lib,
rustPlatform,
pnpmBuildHook,
pnpmConfigHook,
fetchPnpmDeps,
emptyDirectory,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "super-fast-application";
version = "1.0";
src = emptyDirectory;
cargoHash = lib.fakeHash;
nativeBuildInputs = [
pnpmBuildHook
pnpmConfigHook
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 4;
hash = lib.fakeHash;
};
dontPnpmBuild = true;
postBuild = ''
pnpmBuildHook
'';
}) متغیرهای در نظر گرفتهشده
متغیرهای زیر توسط pnpmBuildHook در نظر گرفته میشوند.