Skip to content

Files

Latest commit

1bd989e · Mar 12, 2025

History

History

package-deps-hash

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Sep 19, 2023
Dec 12, 2024
Sep 26, 2023
Jul 26, 2024
Mar 12, 2025
Mar 12, 2025
Feb 18, 2024
Feb 17, 2024
Mar 12, 2025
Sep 19, 2023

@rushstack/package-deps-hash

The package-deps-hash library generates a JSON object containing the git hashes of all files used to produce a given package. This is useful for scenarios where you want to define a "change receipt" file to be published with a package. The Rush tool uses this library to implement incremental build detection.

Only files in a git repo that are not in .gitignore will be considered in building the hash. The file content and the current state of the package can be compared then to determine whether the package needs to be rebuilt.

Internally it uses the GIT hashes to derive the hashes for package content. This allows the process to leverage Git's hash optimizations, as opposed to creating a more elaborate diffing scheme.

NOTE: Git is required to be accessible in the command line path.

Usage

let _ = require('lodash');
let { getPackageDeps } = require('@rushstack/package-deps-hash');

// Gets the current deps object for the current working directory
let deps = getPackageDeps();
let existingDeps = JSON.parse(fs.readFileSync('package-deps.json'));

if (_.isEqual(deps, existingDeps)) {
  // Skip re-building package.
} else {
  // Rebuild package.
}

Links

@rushstack/package-deps-hash is part of the Rush Stack family of projects.