!NhAsaYbbgmzHtXTPQJ:funklause.de

Nix NodeJS

198 Members
57 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
29 Apr 2025
@c3n21:matrix.orgc3n21 *

Yes the fetcher seems to work but when you try to run the entrypoint script it doesn't work

Try this

{
  lib,
  stdenv,
  nodejs,
  fetchFromGitHub,
  yarn-berry_3,
}:
let
  yarn-berry = yarn-berry_3;
in

stdenv.mkDerivation (finalAttrs: rec {
  pname = "verdaccio";
  version = "6.1.2";

  src = fetchFromGitHub {
    owner = "verdaccio";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-EssvN5HtGI5Hmw4EXetj5nzrkBZAAJGgOx09dlYJzhI=";
  };

  nativeBuildInputs = [
    nodejs
    yarn-berry
    yarn-berry.yarnBerryConfigHook
  ];

  offlineCache = yarn-berry.fetchYarnBerryDeps {
    inherit (finalAttrs) src;
    hash = "sha256-jzkmDxQtIFMa1LIPcvKKsXIItPntgXTavoWhd5eZWyQ=";
  };

  buildPhase = ''
    runHook preBuild
    yarn run build
    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall

    mkdir -p $out

    cp -r {bin,build,package.json,.pnp.cjs} $out/

    runHook postInstall
  '';

  meta = with lib; {
    description = "A simple, zero-config-required local private npm registry";
    longDescription = ''
      Verdaccio is a simple, zero-config-required local private npm registry. No need for an entire database just to get started! Verdaccio comes out of the box with its own tiny database, and the ability to proxy other registries (eg. npmjs.org), caching the downloaded modules along the way. For those looking to extend their storage capabilities, Verdaccio supports various community-made plugins to hook into services such as Amazon's s3, Google Cloud Storage or create your own plugin.
    '';
    homepage = "https://verdaccio.org";
    license = licenses.mit;
  };
})

16:35:00
@c3n21:matrix.orgc3n21 *

Yes the fetcher seems to work but when you try to run the entrypoint script it doesn't work

Try this

{
  lib,
  stdenv,
  nodejs,
  fetchFromGitHub,
  yarn-berry_3,
}:
let
  yarn-berry = yarn-berry_3;
in

stdenv.mkDerivation (finalAttrs: rec {
  pname = "verdaccio";
  version = "6.1.2";

  src = fetchFromGitHub {
    owner = "verdaccio";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-EssvN5HtGI5Hmw4EXetj5nzrkBZAAJGgOx09dlYJzhI=";
  };

  nativeBuildInputs = [
    nodejs
    yarn-berry
    yarn-berry.yarnBerryConfigHook
  ];

  offlineCache = yarn-berry.fetchYarnBerryDeps {
    inherit (finalAttrs) src;
    hash = "sha256-jzkmDxQtIFMa1LIPcvKKsXIItPntgXTavoWhd5eZWyQ=";
  };

  buildPhase = ''
    runHook preBuild
    yarn run build
    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall

    mkdir -p $out

    cp -r {bin,build,package.json,.pnp.cjs} $out/

    runHook postInstall
  '';

  meta = with lib; {
    description = "A simple, zero-config-required local private npm registry";
    longDescription = ''
      Verdaccio is a simple, zero-config-required local private npm registry. No need for an entire database just to get started! Verdaccio comes out of the box with its own tiny database, and the ability to proxy other registries (eg. npmjs.org), caching the downloaded modules along the way. For those looking to extend their storage capabilities, Verdaccio supports various community-made plugins to hook into services such as Amazon's s3, Google Cloud Storage or create your own plugin.
    '';
    homepage = "https://verdaccio.org";
    license = licenses.mit;
  };
})

and run ./result/bin/verdaccio

16:36:05
@cathal_mullan:matrix.orgCathal Yeah I see what you mean now. I wonder if the yarnInstallHook has any support for PNP mode? Probably not though. 16:38:45
@c3n21:matrix.orgc3n21 Yeah, at this point I'm wondering if I should just wait the release of 7.x as the author told me that it will use pnpm or just try to hack this around 16:44:21
@cathal_mullan:matrix.orgCathalI'm no yarn expert, but from a quick search seems that it should be possible to wrap the end binary to correctly pass the .pnp files, or set an env var. I came across this for example: https://github.com/madjam002/yarnpnp2nix/blob/master/lib/mkYarnPackage.nix#L196-L19716:48:16
@cathal_mullan:matrix.orgCathalMight be more trouble than it's worth for the Verdaccio pakcage specifically, since they're switching to pnpm anyways, but there will likely be other packages who hit this issue in the future.16:51:29
@cathal_mullan:matrix.orgCathal* Might be more trouble than it's worth for the Verdaccio package specifically, since they're switching to pnpm anyways, but there will likely be other packages who hit this issue in the future.16:51:36
@c3n21:matrix.orgc3n21Yes this did indeed work, the only problem is that I'm not so acquaintanted with Nix packaging and I don't know if a node package can also have a wrapper16:57:25
@c3n21:matrix.orgc3n21

Yes I think that perhaps it should be wiser to package it for pnpm for now and use the unstable versioning till 7.x is released.

Meanwhile I will raise the topic about pnp

16:58:55
@cathal_mullan:matrix.orgCathalWrapping node packages is fine, here's an example of the Prisma package doing it: https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pr/prisma/package.nix#L83-L8717:00:52
@dolcetriade:matrix.orgDolceTriade joined the room.23:12:13

Show newer messages


Back to Room ListRoom Version: 6