Skip to content
Load pnpm lock files into nix :) [maintainer=@adisbladis]
Nix Python JavaScript Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
tests
.travis.yml
COPYING
Makefile
README.org
default.nix
derivation.nix
link-bin-outputs.py
overrides.nix
pnpmlock.nix
semver.nix

README.org

https://travis-ci.org/adisbladis/pnpm2nix.svg?branch=master

pnpm2nix

Loads pnpm’s shrinkwrap.yaml into nix expressions.

Example default.nix

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.

You can’t perform that action at this time.