about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYt <raphael@megzari.com>2023-11-09 16:19:24 +0000
committerGitHub <noreply@github.com>2023-11-09 16:19:24 +0000
commit5aaeafbe2603df195938edaa91c2a68739eb499d (patch)
tree7f6021b861de9999271c373c17002e9497ddd09d
parentb75b355b5022dc8f5156590088ef98fa124f2997 (diff)
buildNpmPackage: make nodejs overridable (#265171)
* buildNpmPackage: allow nodejs to be passed as argument

* Update doc/languages-frameworks/javascript.section.md

Co-authored-by: Lily Foster <lily@lily.flowers>

---------

Co-authored-by: Lily Foster <lily@lily.flowers>
-rw-r--r--doc/languages-frameworks/javascript.section.md1
-rw-r--r--pkgs/build-support/node/build-npm-package/default.nix3
2 files changed, 3 insertions, 1 deletions
diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md
index f35fd83cc5949..79cb09572503b 100644
--- a/doc/languages-frameworks/javascript.section.md
+++ b/doc/languages-frameworks/javascript.section.md
@@ -209,6 +209,7 @@ In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json
 * `npmPackFlags`: Flags to pass to `npm pack`.
 * `npmPruneFlags`: Flags to pass to `npm prune`. Defaults to the value of `npmInstallFlags`.
 * `makeWrapperArgs`: Flags to pass to `makeWrapper`, added to executable calling the generated `.js` with `node` as an interpreter. These scripts are defined in `package.json`.
+* `nodejs`: The `nodejs` package to build against, using the corresponding `npm` shipped with that version of `node`. Defaults to `pkgs.nodejs`.
 
 #### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps}
 
diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix
index 7cfc0e9f9c0a5..9babc7ae62871 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, buildPackages, nodejs }:
+{ lib, stdenv, fetchNpmDeps, buildPackages, nodejs } @ topLevelArgs:
 
 { name ? "${args.pname}-${args.version}"
 , src ? null
@@ -34,6 +34,7 @@
 , npmPruneFlags ? npmInstallFlags
   # Value for npm `--workspace` flag and directory in which the files to be installed are found.
 , npmWorkspace ? null
+, nodejs ? topLevelArgs.nodejs
 , ...
 } @ args: