diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix index 0a988cbbaf3f..7cfc0e9f9c0a 100644 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ b/pkgs/build-support/node/build-npm-package/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchNpmDeps, npmHooks, nodejs }: +{ lib, stdenv, fetchNpmDeps, buildPackages, nodejs }: { name ? "${args.pname}-${args.version}" , src ? null @@ -44,7 +44,12 @@ let hash = npmDepsHash; }; - inherit (npmHooks.override { inherit nodejs; }) npmConfigHook npmBuildHook npmInstallHook; + # .override {} negates splicing, so we need to use buildPackages explicitly + npmHooks = buildPackages.npmHooks.override { + inherit nodejs; + }; + + inherit (npmHooks) npmConfigHook npmBuildHook npmInstallHook; in stdenv.mkDerivation (args // { inherit npmDeps npmBuildScript; diff --git a/pkgs/build-support/node/build-npm-package/hooks/default.nix b/pkgs/build-support/node/build-npm-package/hooks/default.nix index 3f2b0adf1668..36f0319e3d23 100644 --- a/pkgs/build-support/node/build-npm-package/hooks/default.nix +++ b/pkgs/build-support/node/build-npm-package/hooks/default.nix @@ -1,4 +1,13 @@ -{ lib, makeSetupHook, nodejs, srcOnly, buildPackages, makeWrapper }: +{ lib +, srcOnly +, makeSetupHook +, makeWrapper +, nodejs +, jq +, prefetch-npm-deps +, diffutils +, installShellFiles +}: { npmConfigHook = makeSetupHook @@ -6,13 +15,13 @@ name = "npm-config-hook"; substitutions = { nodeSrc = srcOnly nodejs; - nodeGyp = "${buildPackages.nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; + nodeGyp = "${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; # Specify `diff`, `jq`, and `prefetch-npm-deps` by abspath to ensure that the user's build # inputs do not cause us to find the wrong binaries. - diff = "${buildPackages.diffutils}/bin/diff"; - jq = "${buildPackages.jq}/bin/jq"; - prefetchNpmDeps = "${buildPackages.prefetch-npm-deps}/bin/prefetch-npm-deps"; + diff = "${diffutils}/bin/diff"; + jq = "${jq}/bin/jq"; + prefetchNpmDeps = "${prefetch-npm-deps}/bin/prefetch-npm-deps"; nodeVersion = nodejs.version; nodeVersionMajor = lib.versions.major nodejs.version; @@ -27,13 +36,13 @@ npmInstallHook = makeSetupHook { name = "npm-install-hook"; - propagatedBuildInputs = with buildPackages; [ + propagatedBuildInputs = [ installShellFiles makeWrapper ]; substitutions = { hostNode = "${nodejs}/bin/node"; - jq = "${buildPackages.jq}/bin/jq"; + jq = "${jq}/bin/jq"; }; } ./npm-install-hook.sh; }