.husky | ||
.vscode | ||
.woodpecker | ||
archetypes | ||
assets | ||
content | ||
layouts | ||
static | ||
.envrc | ||
.gitignore | ||
.prettierignore | ||
.prettierrc | ||
config.toml | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
node-env.nix | ||
node-packages.nix | ||
node.nix | ||
package-lock.json | ||
package.json | ||
README.md |
pages
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.