pages/README.md

1.7 KiB

pages

status-badge

My personal website. Hosted over at https://millironx.com

Notes to self

All dependencies are now bundled as a Nix Flake. The only trouble with this is that npm packages don't play well with Nix (and especially Flakes), so npm packages are specified twice: once in package{-lock}.json and then again in node*.nix.

Compounding this, there are formatters and commit hooks that require npm to be functional. So, to develop right now requires allowing direnv to setup the Nix development shell, then immediately installing npm packages via npm ci. VSCode (with extensions) and Zed are smart enough to figure out how to use direnv, but other programs (like SourceGit) not so much, so you'll need to launch those programs from inside a direnv shell to make sure they have Prettier, Husky, and all that jazz to execute the hooks.

Last compounding factors: if node_modules is present in the root directory, then node2nix won't create a correct derivation, so node_modules will need to be temporarily deleted after modifying any npm packages, then as soon as node2nix is happy, then immediately run npm ci to get the commit hooks working again. Oh, and also, I renamed the default.nix file generated by node2nix to node.nix to avoid giving direnv any wrong impressions about what derivation to run.

Yes, hopefully I can get completely away from npm here soon, but this is a minor inconvenience considering how (not) often I install new packages into this site, and really discourages me from contributing to the website obesity crisis.