NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.39k stars 14.34k forks source link

Build npm packages from source? #82935

Open Gaelan opened 4 years ago

Gaelan commented 4 years ago

As far as I can tell, Nixpkgs installs all dependencies for node.js software by downloading them from NPM. While this is fine for some packages, many NPM packages go through some sort of build step before they are uploaded to NPM, such as transpilation via Babel or TypeScript, "statically linking" into one JavaScript file with Rollup or Webpack, or minifying the JavaScript source (removing comments, renaming variables to one letter, and other space-saving optimizations). Therefore, I think that in many cases NPM tarballs are a lot closer to a binary release than a source distribution.

If we care about building node-based software 100% from source (and I do mean that "if"—maybe it isn't worth the trouble), then we need some way to replicate those build processes ourselves. Presumably this means writing nix derivations for a lot of NPM packages, which would be a fair bit of work (note that this wouldn't be necessary for anywhere near all NPM packages—I'd say 80-90% of npm tarballs exclusively contain source files).

Sorry if this issue has already been raised elsewhere—I searched Discourse and the issues here, and didn't find anything, but I might have missed something.

wamserma commented 4 years ago

Given the amount of package this would would bring in a lot of maintenance work that currently can't be met by manpower. The only way I can see is some (semi-)automated way as is done for TeXLive.

stale[bot] commented 4 years ago

Hello, I'm a bot and I thank you in the name of the community for opening this issue.

To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.

The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it.

If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use Git blame or GitHub's web interface on the relevant files to find them.

Lastly, you can always ask for help at our Discourse Forum or at #nixos' IRC channel.

ryneeverett commented 4 years ago

still important to me

stale[bot] commented 3 years ago

I marked this as stale due to inactivity. → More info