| 2 Jan 2024 |
Mason Mackaman | do any of the current solutions support npm workspaces? | 14:08:28 |
Lily Foster | In reply to @platonic.mason:matrix.org do any of the current solutions support npm workspaces? buildNpmPackage does | 14:08:59 |
Mason Mackaman | is buildNpmPackage just a FOD? | 14:14:27 |
Mason Mackaman | yeah, I guess so. I suppose at this point that's probably the best option for me :/ | 14:22:20 |
Lily Foster | i mean fetchNpmDeps is a FOD fetcher but we'll have automatic FODs (for non-git-deps) from the lockfile Soon™️ | 14:57:22 |
Wanja Hentze | if there's anything I can do to help with that, lemme know 🫡 | 15:23:45 |
| 3 Jan 2024 |
@janne.hess:helsinki-systems.de | Does anyone have a working example to build a sharp dep? It wants libvips, pkg-config, python, node-gyp and is now trying to download the node headers | 13:29:54 |
Lily Foster | In reply to @janne.hess:helsinki-systems.de Does anyone have a working example to build a sharp dep? It wants libvips, pkg-config, python, node-gyp and is now trying to download the node headers pkgs-config in nativeBuildInputs and libvips in buildInputs should be enough when using buildNpmPackage, right? | 13:31:34 |
Lily Foster | buildNpmPackage sets up both node gyp and node header location in the config hook | 13:31:52 |
@janne.hess:helsinki-systems.de | In reply to @lily:lily.flowers
buildNpmPackage sets up both node gyp and node header location in the config hook ah damn it, I'm not using that :/ Is there a hook I can pull in? | 13:32:36 |
Lily Foster | npmHooks.npmConfigHook | 13:32:51 |
Lily Foster | if it's just a standard mkDerivation | 13:33:04 |
Lily Foster | that'll handle getting and building all deps | 13:33:13 |
Lily Foster | make sure you have a npmDeps = fetchNpmDeps { ... } too | 13:33:26 |
@janne.hess:helsinki-systems.de | I can try, thank you :) I'm currently using a custom FOD because I have to use an awful stack of yarn berry, nextjs, turborepo, … | 13:34:53 |
Lily Foster | oh | 13:35:18 |
Lily Foster | uhh | 13:35:19 |
Lily Foster | you'll need to actually manually configure npm then unless we added an escape hatch to only have the hook do npm setup and not do dep build | 13:35:45 |
@janne.hess:helsinki-systems.de | Couldn't I also move the files in the FOD around so it's compatible with what fetchNpmDeps returns? | 13:36:23 |
Lily Foster | here's the magic for that part: https://github.com/NixOS/nixpkgs/blob/d120d3076257ce88d0c35e61b729dcb55c88c642/pkgs/build-support/node/build-npm-package/hooks/npm-config-hook.sh#L17-L18 | 13:36:53 |
Lily Foster | In reply to @janne.hess:helsinki-systems.de Couldn't I also move the files in the FOD around so it's compatible with what fetchNpmDeps returns? doubtful if it's a yarn FOD | 13:36:59 |
Lily Foster | yarn doesn't do dep trees the same. and npm won't work to build deps without a npm lockfile anyway | 13:37:24 |
@janne.hess:helsinki-systems.de | In reply to @lily:lily.flowers yarn doesn't do dep trees the same. and npm won't work to build deps without a npm lockfile anyway yeah I just figured that out :/ | 13:38:27 |
Lily Foster | In reply to @lily:lily.flowers here's the magic for that part: https://github.com/NixOS/nixpkgs/blob/d120d3076257ce88d0c35e61b729dcb55c88c642/pkgs/build-support/node/build-npm-package/hooks/npm-config-hook.sh#L17-L18 and here's where those two get defined: https://github.com/NixOS/nixpkgs/blob/d120d3076257ce88d0c35e61b729dcb55c88c642/pkgs/build-support/node/build-npm-package/hooks/default.nix#L17-L18 | 13:38:47 |
Lily Foster | * and here's where those two get defined: https://github.com/NixOS/nixpkgs/blob/d120d3076257ce88d0c35e61b729dcb55c88c642/pkgs/build-support/node/build-npm-package/hooks/default.nix#L17-L18 | 13:38:56 |
Lily Foster | if you define them similarly it should work | 13:39:03 |
@janne.hess:helsinki-systems.de | so this?
export NIX_NODEJS_BUILDNPMPACKAGE=1 export npm_config_node_gyp="${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js";
| 13:40:38 |
Lily Foster | not the buildNpmpackage part | 13:40:51 |
Lily Foster | probably | 13:40:54 |
Lily Foster | it's not actually using npm, right? | 13:41:07 |