[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Web development on Guix: nodejs, npm and all that

From: t
Subject: Web development on Guix: nodejs, npm and all that
Date: Mon, 10 Jan 2022 13:17:56 +0000
User-agent: mu4e 1.6.9; emacs 28.0.50

Hi Guix.

Do people do web-dev on Guix System? I need to dive back into the whole Node.js NPM ecosystem - something I've not touched for some years and I'm wondering how people go about e.g. installing NPM packages on Guix.

I started by reading (guix build node-build-system) as one does. I think I have a decent grasp on exactly how it goes about installing those NPM dependencies. Unsurprisingly you need to package all those dependencies as Guix packages, then supply them as inputs, whereupon the extra 'patch-dependencies phase will actually lookup those packages in your inputs and replace deps paths under "dependencies", "devDependencies", "peerDependencies" with store items as needed. Configure phase actually runs local install with --offline and --ignore-scripts which is understandable followed by build phase which does npm run build where the script is available. Followed by some tar and npm install from local package dance, which I don't fully understand, but I get the general idea and where we end up (I still haven't a clue what 'set-home phase does and why).

This is all very cute and reproducible, but ... JS web developers aren't exactly known for avoiding dependencies. Even just getting express-js to run would require me to package ungodly number of those dependencies.

If guix repo is indicative, looks like I'm not the only one to realise packaging those would be too much work unless the entire community somehow decides to come together and do an "NPM Summer of Hard Unpaid Labour".

So, how do people program for the Web, Node on Guix. Does =npm install= which defaults to local installation work well enough for most packages? An outline of what to expect and known problems and workarounds would be very useful.

Thank you

reply via email to

[Prev in Thread] Current Thread [Next in Thread]