A Nix-based tool for building npm packages and serving as a lightweight npm registry.
Napalm is a Nix-based tool for building npm packages within the Nix ecosystem, providing deterministic builds and dependency management. It solves the problem of integrating JavaScript/Node.js projects into Nix by handling package locks, patching dependencies, and serving as a local npm registry. It ensures reproducible builds by leveraging Nix's sandboxing and immutable store.
Nix users and developers who need to integrate npm-based JavaScript projects into Nix builds, especially those working in monorepos or requiring custom patching of dependencies.
Developers choose Napalm for its deep integration with Nix, offering reproducible builds, flexible patching, and local registry capabilities without leaving the Nix ecosystem. It provides more control and determinism compared to traditional npm workflows.
Support for building npm packages in Nix and lightweight npm registry [maintainer=?]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Nix's sandboxing and immutable store to ensure reproducible npm package builds, using package-lock.json for precise dependency resolution.
Allows patching npm packages before fetching to fix issues like invalid shebangs, with custom overrides for specific packages or versions, and updates integrity hashes automatically.
Handles multiple package-lock.json files, making it suitable for complex projects with nested dependencies or monorepo structures, as shown in the README examples.
Supports any Node.js version, including custom builds via Nix expressions, providing flexibility in runtime environments without relying on global installations.
The project is actively seeking a new maintainer, which could lead to unaddressed bugs or stagnation as npm and Nix evolve, impacting long-term reliability.
Requires significant knowledge of Nix expressions and integration, making it inaccessible for teams not already invested in the Nix ecosystem, with a steep learning curve.
Enabling package patching forces repacking of all dependencies, which can slow down builds compared to standard npm installs, especially for large projects.