pnpm2nix
Loads pnpm
’s shrinkwrap.yaml into nix expressions.
default.nix
Example with (import <nixpkgs> {});
with (import /path/to/pnpm2nix { inherit pkgs; });
mkPnpmPackage {
src = ./.;
# These default to src/package.json & src/shrinkwrap.yaml
# packageJSON = ./package.json;
# shrinkwrapYML = ./shrinkwrap.yaml;
}
More comprehensive examples can be found in the tests.
Managing development environments with pnpm2nix
default.nix
with (import <nixpkgs> {});
with (import /path/to/pnpm2nix { inherit pkgs; });
mkPnpmPackage {
src = ./.;
}
shell.nix
with (import <nixpkgs> {});
with (import /path/to/pnpm2nix { inherit pkgs; });
mkShell {
buildInputs = [
(mkPnpmEnv (import ./default.nix))
];
}
Caveats and known bugs
pnpm does not currently include checksums for tarballs
Until this is fixed in pnpm
github dependencies won’t work unless you opt in to impure builds.
This is currently pre-alpha software, it might eat your kittens.
License
pnpm2nix
is released under the terms of the MIT license.