$
This commit is contained in:
79
node_modules/package-hash/README.md
generated
vendored
Normal file
79
node_modules/package-hash/README.md
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
# package-hash
|
||||
|
||||
Generates a hash for an installed npm package, useful for salting caches.
|
||||
[AVA](https://github.com/sindresorhus/ava) for example caches precompiled test
|
||||
files. It generates a salt for its cache based on the various packages that are
|
||||
used when compiling the test files.
|
||||
|
||||
`package-hash` can generate an appropriate hash based on the package location
|
||||
(on disk) and the `package.json` file. This hash is salted with a hash
|
||||
for the `package-hash` itself.
|
||||
|
||||
`package-hash` can detect when the package-to-be-hashed is a Git repository. In
|
||||
the AVA example this is useful when you're debugging one of the packages used to
|
||||
compile the test files. You can clone it locally and use `npm link` so AVA can
|
||||
find the clone. The hash will include the HEAD (`.git/HEAD`) and its
|
||||
corresponding ref (e.g. `.git/refs/heads/master`), any packed refs
|
||||
(`.git/packed-refs`), as well as the diff (`git diff`) for any non-committed
|
||||
changes. This makes it really easy to test your changes without having to
|
||||
explicitly clear the cache in the parent project.
|
||||
|
||||
## Installation
|
||||
|
||||
```console
|
||||
$ npm install --save package-hash
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
const packageHash = require('package-hash')
|
||||
|
||||
// Asynchronously:
|
||||
const hash = await packageHash(require.resolve('babel-core/package.json'))
|
||||
|
||||
// Synchronously:
|
||||
const hash = packageHash.sync(require.resolve('babel-core/package.json'))
|
||||
```
|
||||
|
||||
`packageHash()` / `packageHash.sync()` must be called with a file path for an
|
||||
existing `package.json` file. To get the path to an npm package it's easiest to
|
||||
use `require.resolve('the-name/package.json')`.
|
||||
|
||||
You can provide multiple paths:
|
||||
|
||||
```js
|
||||
const hash = await packageHash([
|
||||
require.resolve('babel-core/package.json'),
|
||||
require.resolve('babel-preset-es2015/package.json')
|
||||
])
|
||||
```
|
||||
|
||||
An optional salt value can also be provided:
|
||||
|
||||
```js
|
||||
const hash = await packageHash(require.resolve('babel-core/package.json'), 'salt value')
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### `packageHash(paths, salt?)`
|
||||
|
||||
`paths: string | string[]` ➜ can be a single file path, or an array of paths.
|
||||
|
||||
`salt: Array | Buffer | Object | string` ➜ optional. If an `Array` or `Object` (not `null`) it is first converted to a JSON string.
|
||||
|
||||
Returns a promise for the hex-encoded hash string.
|
||||
|
||||
### `packageHash.sync(paths, salt?)`
|
||||
|
||||
`paths: string | string[]` ➜ can be a single file path, or an array of paths.
|
||||
|
||||
`salt: Array | Buffer | Object | string` ➜ optional. If an `Array` or `Object` (not `null`) it is first converted to a JSON string.
|
||||
|
||||
Returns a hex-encoded hash string.
|
||||
|
||||
## Compatibility
|
||||
|
||||
`package-hash` has been tested with Node.js 8 and above, including Windows
|
||||
support.
|
Reference in New Issue
Block a user