!NhAsaYbbgmzHtXTPQJ:funklause.de

Nix NodeJS

209 Members
60 Servers

Load older messages


SenderMessageTime
11 Mar 2026
@srasu:srasu.orgsrasu Hello! I'm trying out packaging out-of-your-element and I'm trying to figure out how to use buildNpmPackage to do so. It seems like doing that doesn't result in me being able to call the various scripts available via npm run <subcommand>, which is the primary way to interact with it. Is there a way to do that with buildNpmPackage? 01:50:35
@hexa:lossy.networkhexanone of the scripts looks like a build script02:00:15
@srasu:srasu.orgsrasu that's correct, there's no "build", it's just a collection of scripts meant to be run with npm run 02:01:08
@srasu:srasu.orgsrasu The flow I'm looking for here more or less is to be able to do a nix run .#ooye-setup to call the npm run setup command, use it interactively to produce a file, then use requireFile to provide it to another derivation that will call npm run start 02:01:28
@srasu:srasu.orgsrasuI don't know if that will be feasible02:01:54
@srasu:srasu.orgsrasuI think I figured it out for my case02:58:27
@srasu:srasu.orgsrasu I ended up needing to make my own installPhase that copied over the project to the $out and used makeWrapper to make scripts that call node to run the relevant scripts. 02:59:00
@srasu:srasu.orgsrasu
{
  lib,
  pkgs,
  buildNpmPackage,
  importNpmLock,
  nodejs ? pkgs.nodejs_22,
  ...
}:

buildNpmPackage (finalAttrs: {
  pname = "ooye";
  version = "3.4";

  src = builtins.fetchGit {
    url = https://gitdab.com/cadence/out-of-your-element/;
    rev = "c55e6c611585f4c1dbfd8c767e5f872fbeb0c66a";
    ref = "v${finalAttrs.version}";
  };

  npmDepsHash = "";

  npmDeps = importNpmLock { npmRoot = finalAttrs.src; };

  npmConfigHook = importNpmLock.npmConfigHook;
  dontNpmBuild = true;

  installPhase = ''
    runHook preInstall
    mkdir -p $out
    mkdir -p $out/bin
    cp -R . $out/source
    makeWrapper ${nodejs}/bin/node $out/bin/ooye-setup --add-flags $out/source/scripts/setup.js
    makeWrapper ${nodejs}/bin/node $out/bin/ooye --add-flags $out/source/start.js
    runHook postInstall
  '';

  npmPackFlags = [ "--ignore-scripts" ];
})
Like this
02:59:36
@benwebb:matrix.orgbenwebb joined the room.06:27:08
14 Mar 2026
@amadaluzia:unredacted.orgamadaluzia -> 4d2.org changed their display name from amadaluzia to amadaluzia[uorg].18:50:18
@amadaluzia:4d2.orgamadaluzia joined the room.19:30:57
@amadaluzia:unredacted.orgamadaluzia -> 4d2.org changed their display name from amadaluzia[uorg] to amadaluzia -> 4d2.org.21:22:21
16 Mar 2026
@purepani:matrix.orgpurepani changed their display name from purepani to purepanid.05:55:09
@purepani:matrix.orgpurepani changed their display name from purepanid to purepani.05:55:50
19 Mar 2026
@rav:vergara.techRené changed their display name from Rene to René.13:43:25
23 Mar 2026
@azban:matrix.orgazban joined the room.22:17:24
@azban:matrix.orgazbanare node binaries supposed to be able to run without having node specified as a package in your environment?22:17:48
@pyrox:pyrox.devdish [Fox/It/She]yes22:23:50
24 Mar 2026
@azban:matrix.orgazbanany idea why that wouldn't be the case with this config? https://github.com/NixOS/nixpkgs/blob/51600fecc3d3a57353c4f9cf72a22f1f9efc58ae/pkgs/by-name/ea/eas-cli/package.nix00:04:48
@azban:matrix.orgazbangetting: env: ‘node’: No such file or directory.. Do I need to wrap this to point to the write node?00:05:35
@azban:matrix.orgazban* getting: env: ‘node’: No such file or directory.. Do I need to wrap this to point to the right node?00:05:49
@azban:matrix.orgazbanthat seemed to do it00:11:34
@pyrox:pyrox.devdish [Fox/It/She]
In reply to @azban:matrix.org
any idea why that wouldn't be the case with this config? https://github.com/NixOS/nixpkgs/blob/51600fecc3d3a57353c4f9cf72a22f1f9efc58ae/pkgs/by-name/ea/eas-cli/package.nix
the file that gets symlinked as $out/bin/eas in postFixup doesn't have its shebang fixed with patchShebangs since patchShebangsHook runs in fixupPhase which is right before the code in postFixup runs
02:44:51
@pyrox:pyrox.devdish [Fox/It/She]and so it doesnt have a correct shebang that would point to a nodejs already02:45:08
@pyrox:pyrox.devdish [Fox/It/She]and having the proper shebang would register the correct nodejs as a dependency and then you wouldn't have to wrap it02:45:31
@pyrox:pyrox.devdish [Fox/It/She]so tl;dr the packaging is slightly wrong and then it doesnt work properly02:47:01
@pyrox:pyrox.devdish [Fox/It/She] hmm, why doesn't nodeJsInstallExecutables link to nodejs-slim instead of nodejs? Not installing corepack and npm with everything could save a few dozen mb everywhere, which I think would be a good tradeoff. 16:15:16
@pyrox:pyrox.devdish [Fox/It/She] * hmm, why doesn't nodeJsInstallExecutables link to nodejs-slim instead of nodejs? Not installing corepack and npm with everything could save a few dozen mb everywhere, which I think would be a good space saving 16:15:25
25 Mar 2026
@raboof:matrix.orgraboof joined the room.10:26:35
@raboof:matrix.orgraboof I'm surprised not more people have been hit by nodejs.src disappearing (https://github.com/NixOS/nixpkgs/pull/501357) 10:27:32

Show newer messages


Back to Room ListRoom Version: 6