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

https://github.com/wulfmann/pin-latest

Small utility for converting `package.json` versions from `latest` to the actual latest version.
https://github.com/wulfmann/pin-latest

cli npm pin pin-latest tool version version-manager

Last synced: 3 months ago
JSON representation

Small utility for converting `package.json` versions from `latest` to the actual latest version.

Awesome Lists containing this project

README

          

# pin-latest

Small utility for converting `package.json` versions from `latest` to the actual latest version.

## Quickstart

Install

```bash
npm i -g pin-latest
# or
yarn global add pin-latest
# or
npx pin-latest
```

Given the following `package.json`:

```json
{
"name": "example-project",
"dependencies": {
"react": "latest"
}
}
```

Running `pin-latest` will result in the following output:

```bash
$ pin-latest .

{
"name": "example-project",
"dependencies": {
"react": "^16.13.1"
}
}
```

To save changes pass the `--write` flag:

```bash
$ pin-latest .
package.json updated.

$ cat package.json
{
"name": "example-project",
"dependencies": {
"react": "^16.13.1"
}
}
```

## Usage

```text
$ pin-latest --help

Usage
$ pin-latest
Options
--exact, -t Set the exact version
--write, -w Write changes
--version, -v Version number
--help, -h Displays this message
--debug, -d Enable verbose logging
```

### Exact

The `--exact` flag modifies the behavior of the version that is written.

If `--exact` is passed, the version will be written without a leading `^`.

Example:

```bash
$ pin-latest .
{
"react": "^1.0.0"
}

$ pin-latest --exact .
{
"react": "1.0.0"
}
```

### Write

The `--write` flag decides whether or not changes should be written to disk. If `--write` is not passed, the modified file is sent to `stdout`.

## Programmatic Usage

You can also import the main `PinLatest` class to use pin-latest programmatically:

```typescript
// my-script.ts
import PinLatest from 'pin-latest';

(async function() {
await PinLatest({
'.',
exact: false,
debug: false,
write: false
});
}())
```