I’ve been trying all day to get a node/React app (https://github.com/dekkerglen/CubeCobra) running on my new NixOS install. It has been hanging up on canvas. My branch with my attempts at getting it working is https://github.com/ruler501/CubeCobra/tree/fix-install which used node2nix with a wrapper and a flakes.nix
. So my first issue was that canvas couldn’t find node-pre-gyp
to build with so I had to add it to the buildInputs
. Then it was failing to build canvas since it couldn’t download the prebuilt and I hadn’t included the dependencies for it. After spending quite a while down a rabbit hole trying to get the prebuilt working I realized that when building flakes it blocks internet access from the build. In the meantime I tried building new versions of node-pre-gyp
with supplement.json
to try and get a fix to an issue with needle
not working. It wouldn’t compile so I ended up using @discordjs/node-pre-gyp
which did work. I finally ended up having to also put all the dependencies for canvas in the buildInputs
.
Then I got the environment built, but when trying to run it with npm run devstart
it errored out that it couldn’t find babel-loader
which was missing from the .bin
even though it did seem to list it as a dependency in the generated nix files. I’ve tried adding it to supplement.json
where it failed to build due to missing yarn and then needing an internet connection.
I can get a little farther by running npm install
inside of the nix develop
environment which I know is antithetical to the Nix paradigm. That errors out on devstart as well just this time due to canvas
not being able to find libuuid.so.1
even though there is libuuid
in the build inputs.
Anyone have any ideas on what I’m doing wrong? I’m quite new to Nix.