docs: Add notes on Flake npm weirdness [ci skip]
This commit is contained in:
parent
f3fba04398
commit
e1bfbf4b7c
1 changed files with 31 additions and 2 deletions
33
README.md
33
README.md
|
@ -1,3 +1,32 @@
|
|||
# millironx.github.io
|
||||
# pages
|
||||
|
||||
My personal website. Now hosted over at https://millironx.com
|
||||
[![status-badge](https://woodpecker.millironx.com/api/badges/30/status.svg?branch=master)](https://woodpecker.millironx.com/repos/30/branches/master)
|
||||
|
||||
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.
|
||||
|
|
Loading…
Reference in a new issue