diff options
Diffstat (limited to 'pkgs/build-support/node')
-rw-r--r-- | pkgs/build-support/node/build-npm-package/default.nix | 23 | ||||
-rwxr-xr-x | pkgs/build-support/node/fetch-yarn-deps/fixup.js | 2 |
2 files changed, 17 insertions, 8 deletions
diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix index 9babc7ae628..eecea8b7675 100644 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ b/pkgs/build-support/node/build-npm-package/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchNpmDeps, buildPackages, nodejs } @ topLevelArgs: +{ lib +, stdenv +, fetchNpmDeps +, buildPackages +, nodejs +, darwin +} @ topLevelArgs: { name ? "${args.pname}-${args.version}" , src ? null @@ -35,16 +41,15 @@ # Value for npm `--workspace` flag and directory in which the files to be installed are found. , npmWorkspace ? null , nodejs ? topLevelArgs.nodejs +, npmDeps ? fetchNpmDeps { + inherit forceGitDeps src srcs sourceRoot prePatch patches postPatch; + name = "${name}-npm-deps"; + hash = npmDepsHash; +} , ... } @ args: let - npmDeps = fetchNpmDeps { - inherit forceGitDeps src srcs sourceRoot prePatch patches postPatch; - name = "${name}-npm-deps"; - hash = npmDepsHash; - }; - # .override {} negates splicing, so we need to use buildPackages explicitly npmHooks = buildPackages.npmHooks.override { inherit nodejs; @@ -55,7 +60,9 @@ in stdenv.mkDerivation (args // { inherit npmDeps npmBuildScript; - nativeBuildInputs = nativeBuildInputs ++ [ nodejs npmConfigHook npmBuildHook npmInstallHook ]; + nativeBuildInputs = nativeBuildInputs + ++ [ nodejs npmConfigHook npmBuildHook npmInstallHook nodejs.python ] + ++ lib.optionals stdenv.isDarwin [ darwin.cctools ]; buildInputs = buildInputs ++ [ nodejs ]; strictDeps = true; diff --git a/pkgs/build-support/node/fetch-yarn-deps/fixup.js b/pkgs/build-support/node/fetch-yarn-deps/fixup.js index 8b91e7efa63..732e569aba7 100755 --- a/pkgs/build-support/node/fetch-yarn-deps/fixup.js +++ b/pkgs/build-support/node/fetch-yarn-deps/fixup.js @@ -21,6 +21,8 @@ const fixupYarnLock = async (lockContents, verbose) => { if (verbose) console.log(`Rewriting URL ${url} for dependency ${dep}`) pkg.resolved = urlToName(url) + if (hash) + pkg.resolved += `#${hash}` return [dep, pkg] }) |