Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nix-community/pnpm2nix

Load pnpm lock files into nix :) [maintainer=@adisbladis]
https://github.com/nix-community/pnpm2nix

Last synced: 3 months ago
JSON representation

Load pnpm lock files into nix :) [maintainer=@adisbladis]

Awesome Lists containing this project

README

        

[[https://travis-ci.org/nix-community/pnpm2nix][https://travis-ci.org/nix-community/pnpm2nix.svg?branch=master]]

* pnpm2nix
Loads =pnpm='s shrinkwrap.yaml into nix expressions.

** Example =default.nix=
#+begin_src nix
with (import {});
with (import /path/to/pnpm2nix { inherit pkgs; });

mkPnpmPackage {
src = ./.;
# These default to src/package.json & src/shrinkwrap.yaml
# packageJSON = ./package.json;
# shrinkwrapYML = ./shrinkwrap.yaml;
}
#+END_SRC

More comprehensive examples can be found in the [[file://tests/][tests]].

** Managing development environments with pnpm2nix

*** default.nix
#+begin_src nix
with (import {});
with (import /path/to/pnpm2nix { inherit pkgs; });

mkPnpmPackage {
src = ./.;
}
#+END_SRC

*** shell.nix
#+begin_src nix
with (import {});
with (import /path/to/pnpm2nix { inherit pkgs; });

mkShell {
buildInputs = [
(mkPnpmEnv (import ./default.nix))
];
}
#+END_SRC

** Caveats and known bugs
[[https://github.com/pnpm/pnpm/issues/1035][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.