node2nix
hasql-interpolate
Our great sponsors
node2nix | hasql-interpolate | |
---|---|---|
4 | 1 | |
486 | 12 | |
- | - | |
0.0 | 5.3 | |
6 months ago | 10 days ago | |
Nix | Haskell | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
node2nix
-
The Magic Nix Cache
You may find something like node2nix helpful (https://github.com/svanderburg/node2nix). This converts your package.json into a Nix expression that can then be cached. You're right that it does require some setup and a bit of Nix knowledge but could yield significant benefits and take a good chunk out of that 20 minutes.
Another option might be to use pnpm instead of Yarn and cache your pnpm dependencies. pnpm actually works a bit like Nix in that it creates a pnpm-lock.yaml file with content-based hashes for the full package.json dependency tree. This enables it to quickly determine which parts of the dependency tree it needs to build and which are already available.
-
Override `nodePackages' with the `default.nix' from `node2nix' multiple times
I got it from this github issue in the node2nix repo.
-
how to install Mozilla's readability library?
As Gerschtli commented, it may be possible to generate a Nix expression for @mozilla/readability using node2nix. Then get its node_modules path like this and set NODE_PATH to the value.
-
How to install dependencies with Nix?
For node programs, you may be able to find the commands as just packages, or look at https://github.com/svanderburg/node2nix for creating the nix equivalent of a node-modules
hasql-interpolate
-
The Magic Nix Cache
One project cut their CI time from 18m to 3m: https://github.com/awkward-squad/hasql-interpolate/actions. I wonder who will see the biggest cut!
Note that when PRs merge to the default branch, their cache doesn't come with them. This is how GitHub Action's cache works, as a security measure. However: subsequent rebuilds will, and PRs off the default branch will too.
What are some alternatives?
nixpkgs - Nix Packages collection & NixOS
nix-cde - Nix Common Development Environment
nix-npm-buildpackage - Build nix packages that use npm/yarn
flakeforge - Container registry generating container image tarfiles on the fly
nur-packages - My NUR packages
relocatable.nix - A nix bundler that produces relocatable deployment script for nix store paths.
readability-cli
bundlers
at-node-nix - Node.js Nix expressions