| 31 Oct 2023 |
| Wanja Hentze joined the room. | 19:39:47 |
Wanja Hentze | joepie91 🏳️🌈: so which of the ~dozen or so npm/nix things should I use | 19:40:52 |
Wanja Hentze | so far I've tried
- node2nix
- buildNpmPackage (from nixpkgs)
- buildNpmPackage (from serokell)
- old v1-only npmlock2nix
- newer npmlock2nix
- floco
- napalm
- dream2nix
| 19:42:10 |
Lily Foster | what do you mean from serokell.... do they have their own? | 19:42:37 |
Wanja Hentze | yes | 19:43:13 |
Wanja Hentze | just accidentally named the same, no relation from what I can tell | 19:43:28 |
Lily Foster | In reply to @whentze:matrix.org just accidentally named the same, no relation from what I can tell ah interesting. i missed that then | 19:43:43 |
Wanja Hentze | https://github.com/serokell/nix-npm-buildpackage | 19:43:52 |
Marie | In reply to @whentze:matrix.org joepie91 🏳️🌈: so which of the ~dozen or so npm/nix things should I use i had the best experience with buildNpmPackage (nixpkgs) so far, but didn't try all of the things you said | 19:45:34 |
Lily Foster | i'm biased, so i won't answer... | 19:45:53 |
Wanja Hentze | we also have a private fork of oldschool npmlock2nix at work which works for all our cursed crap | 19:45:58 |
Wanja Hentze | In reply to @lily:lily.flowers i'm biased, so i won't answer... no please shill your tool | 19:46:08 |
Lily Foster | In reply to @whentze:matrix.org no please shill your tool I mean I work on nixpkg's buildNpmPackage, and we basically work around npm bugs. The other decent one would be floco since they just reimplement npm's functionality, but apparently they're using a nix plugin now which just feels cursed? I've not seen enough about the dream2nix one, but i've heard it works more reliably than any of the others. The rest are outdated and highly questionable | 19:49:18 |
Lily Foster | Oh and i guess maybe the serokell one is decent. i've not seen it | 19:49:42 |
Lily Foster | (tbh the nixpkgs one would be a lot better if i either had time or someone else to collaborate on it with too...) | 19:50:17 |
Wanja Hentze | In reply to @marie:marie.cologne i had the best experience with buildNpmPackage (nixpkgs) so far, but didn't try all of the things you said that works well but the need to maintain the npmDepsHash is quite unfortunate. for larger projects the prefetcher takes forever and also eventually runs into npm rate limits | 19:50:41 |
Lily Foster | (i mostly know what needs to be done, but it's a matter of doing it and the initial energy just to convince myself to get into node work can be a lot sometimes) | 19:51:00 |
Wanja Hentze | we also have patches for that to make it retry with backoff that we intend to mainline ahem | 19:51:16 |
Lily Foster | In reply to @whentze:matrix.org that works well but the need to maintain the npmDepsHash is quite unfortunate. for larger projects the prefetcher takes forever and also eventually runs into npm rate limits We're fixing the npmDepsHash deal for out-of-tree stuff by having something like importCargoLock for npm lockfiles. And can you post a build log about the rate limits? I've never seen rate limits | 19:51:32 |
Lily Foster | In reply to @whentze:matrix.org we also have patches for that to make it retry with backoff that we intend to mainline ahem does it not already retry with backoff? | 19:51:45 |
Wanja Hentze | In reply to @lily:lily.flowers I mean I work on nixpkg's buildNpmPackage, and we basically work around npm bugs. The other decent one would be floco since they just reimplement npm's functionality, but apparently they're using a nix plugin now which just feels cursed? I've not seen enough about the dream2nix one, but i've heard it works more reliably than any of the others. The rest are outdated and highly questionable the nix plugin is optional fwiw. you don't need it for floco itself | 19:51:45 |
Marie | i've never had buildNpmPackage run into rate limits, only the curl issue we had | 19:51:59 |
Wanja Hentze | nope | 19:52:02 |
Lily Foster | In reply to @whentze:matrix.org nope how are you testing that? | 19:52:11 |
Lily Foster | i wrote the code for that. and tested it | 19:52:15 |
Lily Foster | and it got merged ages ago | 19:52:20 |
Wanja Hentze | huh | 19:52:20 |
Lily Foster | and it does fetch parallel and always has | 19:52:37 |
Wanja Hentze | we just put it in a mid-sized react project | 19:52:42 |
Lily Foster | (i actually recently made it respect NIX_BUILD_CORES or whatever the env var is not long ago) | 19:52:54 |