# @mnrendra/read-package

> Read the package.json file from any sub-directory in your project.

Latest version **2.4.3** (published 2025-03-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install @mnrendra/read-package
pnpm add @mnrendra/read-package
yarn add @mnrendra/read-package
bun add @mnrendra/read-package
```

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.4.3 |
| Published | 2025-03-03 |
| First published | 2023-07-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 11.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Muhammad Rendra |
| Maintainers | mnrendra |
| Keywords | read, package, json, read-package, package-json |

## Links

- npm: https://www.npmjs.com/package/@mnrendra/read-package
- Repository: https://github.com/mnrendra/read-package
- Homepage: https://github.com/mnrendra/read-package#readme
- Issues: https://github.com/mnrendra/read-package/issues
- npm.io page: https://npm.io/package/@mnrendra/read-package

## Dependencies (2)

- [@mnrendra/types-package](https://npm.io/package/@mnrendra/types-package.md) ^1.0.1
- [@mnrendra/read-stacked-json](https://npm.io/package/@mnrendra/read-stacked-json.md) ^1.6.3

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 2.4.3 (latest) — 2025-03-03
- 2.4.2 — 2025-03-02
- 2.4.1 — 2024-11-15
- 2.4.0 — 2024-07-08
- 2.3.0 — 2024-07-06
- 2.2.0 — 2024-06-20
- 2.1.1 — 2024-02-25
- 2.1.0 — 2023-12-09
- 2.0.3 — 2023-10-31
- 2.0.2 — 2023-10-29
- 2.0.1 — 2023-10-19
- 2.0.0 — 2023-07-15

## README

# @mnrendra/read-package
Read the `package.json` file from any sub-directory in your project.

## Install
```bash
npm i @mnrendra/read-package
```

## Usage

Using `CommonJS`:
```javascript
const { readPackage, readPackageSync } = require('@mnrendra/read-package')

// Asynchronously
readPackage()
  .then(({ name, version }) => {
    console.log('asynchronously:', name, version)
  })

// Synchronously
const { name, version } = readPackageSync()
console.log('synchronously:', name, version)
```

Using `ES Module`:
```javascript
import { readPackage, readPackageSync } from '@mnrendra/read-package'

// Asynchronously
readPackage()
  .then(({ name, version }) => {
    console.log('asynchronously:', name, version)
  })

// Synchronously
const { name, version } = readPackageSync()
console.log('synchronously:', name, version)
```

### Examples

#### 1. Read the `package.json` file in your development project:
Assuming your project's `~/project-name/package.json` file is as follows:
```json
{
  "name": "project-name",
  "version": "1.0.0"
}
```

Then, you can access and read the `~/project-name/package.json` file from any directory within your project.<br/>
Here are some examples:<br/>

##### • Read from `~/project-name/src/index.js`:
```javascript
const { readPackageSync } = require('@mnrendra/read-package')

// Synchronously
const { name, version } = readPackageSync()
console.log('synchronously:', name, version) // Output: synchronously: project-name 1.0.0
```

##### • Read from `~/project-name/src/any-directory/index.mjs`:
```javascript
import { readPackage } from '@mnrendra/read-package'

// Asynchronously
readPackage()
  .then(({ name, version }) => {
    console.log('asynchronously:', name, version) // Output: asynchronously: project-name 1.0.0
  })
```

#### 2. Read the `package.json` file in your published module:
Assuming your module is installed in the `/consumer/node_modules/module-name/` directory and the `package.json` file for your module located at `/consumer/node_modules/module-name/package.json` is as follows:
```json
{
  "name": "module-name",
  "version": "1.0.0"
}
```

Then, you can access and read your `package.json` file from any directory within your module.<br/>
Here are some examples:<br/>

##### • Read from `/consumer/node_modules/module-name/dist/index.js`:
```javascript
"use strict";
const { readPackageSync } = require('@mnrendra/read-package');

// Synchronously
const { name, version } = readPackageSync();
console.log('synchronously:', name, version); // Output: synchronously: module-name 1.0.0
```

##### • Read from `/consumer/node_modules/module-name/dist/any-directory/index.js`:
```javascript
"use strict";
const { readPackage } = require('@mnrendra/read-package');

// Asynchronously
readPackage()
  .then(({ name, version }) => {
    console.log('asynchronously:', name, version); // Output: asynchronously: module-name 1.0.0
  });
```

## Options
### • `skippedStacks`
*type: `string|string[]`*<br/>
*default: `[]`*<br/>
A name or a list of names of stack traces that need to be skipped.
### • `stackTraceLimit`
*type: `number`*<br/>
*default: `10`*<br/>
The `Error.stackTraceLimit` property specifies the number of stack frames to be collected by a stack trace.

## Utilities
```javascript
import {
  validateSkippedStacks // To validate a name or a list of names of stack traces that need to be skipped. More info: @see https://github.com/mnrendra/validate-skipped-stacks
} from '@mnrendra/read-package'
```

## Types
```typescript
import type {
  Package, // Exported from @mnrendra/types-package
  Options, // @mnrendra/read-package options
  SkippedStacks, // @mnrendra/validate-skipped-stacks input
  ValidSkippedStacks // @mnrendra/validate-skipped-stacks output
} from '@mnrendra/read-package'
```

## License
[MIT](https://github.com/mnrendra/read-package/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)

---
_Source: https://npm.io/package/@mnrendra/read-package · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
