@expo/fingerprint
A library to generate a fingerprint from a React Native project
This package has a good security score with no known vulnerabilities.
Community Reviews
Reliable fingerprinting for React Native builds with good caching support
The API is straightforward - primarily `createFingerprintAsync()` with options for customizing what gets hashed. Performance is acceptable for CI environments (typically 2-5 seconds on medium projects), though it does file I/O extensively. Memory footprint stays reasonable even on large monorepos. The library handles missing files gracefully and provides clear error messages when project structure is unexpected.
One gotcha: the fingerprint can change between library versions as hashing logic evolves, so pin your version in CI. The `ignorePaths` option is essential for excluding generated files, but requires manual tuning. Documentation could be better on what exactly gets included in fingerprints by default. No built-in retry logic, but operations are synchronous enough that wrapping with your own retry is straightforward.
Best for: Expo and React Native projects needing deterministic build fingerprints for caching, OTA update decisions, or detecting meaningful native changes.
Avoid if: You need sub-second performance in hot-reload scenarios or require stable fingerprints across library version upgrades without testing.
Solid fingerprinting tool for Expo updates with decent API but sparse docs
The TypeScript support is excellent with well-defined types for `FingerprintResult`, `HashSource`, and options. IDE autocomplete works smoothly, making it easy to explore configuration options like `platforms`, `ignorePaths`, and `hashAlgorithm`. Error messages are generally clear when file access issues occur.
The main pain point is documentation sparseness. While the README covers basic usage, there's limited guidance on advanced scenarios like customizing source selection or debugging fingerprint mismatches. You'll need to read the source code or experiment to understand how different file changes affect fingerprints. The learning curve isn't steep, but better real-world examples would help, especially for monorepo setups or when excluding specific native modules.
Best for: Expo projects needing to determine when native code changes require rebuilds, especially in CI/CD pipelines for EAS Update workflows.
Avoid if: You're working on a bare React Native project without Expo or need extensive fingerprint customization beyond basic ignore patterns.
Solid fingerprinting tool with clear API, but narrow documentation
In practice, integrating this into CI/CD pipelines is smooth. The fingerprint accurately detects changes to native dependencies, app.json modifications, and native code alterations. Error messages are generally clear when file access issues occur, though debugging why certain files are included/excluded can require digging into the sources array.
The main pain point is documentation depth. While the README covers basic usage, there's limited guidance on advanced scenarios like custom hash sources, monorepo setups, or interpreting the sources array for debugging. You'll likely need to read the TypeScript definitions or source code for non-trivial use cases. Still, for its core purpose in Expo projects and EAS builds, it's a reliable tool.
Best for: Expo projects needing to detect native dependency changes for build optimization in EAS or custom CI/CD pipelines.
Avoid if: You need fingerprinting for non-Expo React Native projects or require extensive customization without reading source code.
Sign in to write a review
Sign In