Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jase88/filter-npm-deps
filter-npm-deps is a convenient Node.js CLI script to filter and only keep a list of dependencies from your package.json
https://github.com/jase88/filter-npm-deps
npm-dependencies package-json
Last synced: 29 days ago
JSON representation
filter-npm-deps is a convenient Node.js CLI script to filter and only keep a list of dependencies from your package.json
- Host: GitHub
- URL: https://github.com/jase88/filter-npm-deps
- Owner: jase88
- Created: 2023-07-16T10:15:40.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-10T08:31:11.000Z (29 days ago)
- Last Synced: 2024-12-10T09:30:11.273Z (29 days ago)
- Topics: npm-dependencies, package-json
- Language: JavaScript
- Homepage:
- Size: 51.8 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# filter-npm-deps
![npm](https://img.shields.io/npm/v/filter-npm-deps?style=flat-square)
filter-npm-deps is a convenient Node.js CLI script designed to filter a given list of dependencies from your `package.json`.
It supports filtering dependencies from the commonly used dependency fields:
- [dependencies](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#dependencies)
- [devDependencies](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devdependencies)
- [optionalDependencies](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies)
- [peerDependencies](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#peerdependencies)
- [bundleDependencies](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#bundledependencies)## π― Motivation
In many projects, the `package.json` file contains numerous dependencies serving different purposes.
However, certain scenarios, like CI jobs, demand only specific dependencies in particular versions.
Therefore `filter-npm-deps` can reduce or prune your package.json, to only contain the dependencies that you need.## π Usage
To use filter-npm-deps, you can easily invoke it with npx as follows:
```bash
npx filter-npm-deps -d [dependencies]
```## π§° Requirements
- node.js 18 or higher
## πExample
Given the following package.json:
```json
{
"name": "my-app",
"description": "...",
"dependencies": {
"axios": "1.4.0",
"lodash-es": "4.17.21"
},
"devDependencies": {
"typescript": "5.1.6"
},
"optionalDependencies": {
"playwright": "1.36.1"
}
}
```If you want to only keep `playwright` and `lodash-es` with the given version from your package.json, you can run:
```bash
npx filter-npm-deps -d "playwright,lodash-es"
```which would result in:
```json
{
"name": "my-app",
"description": "...",
"dependencies": {
"lodash-es": "4.17.21"
},
"devDependencies": {},
"optionalDependencies": {
"playwright": "1.36.1"
}
}
```Afterward you can install your dependencies with your package manager of choice.
For example with npm:
`npm ci`## π‘ Alternatives
While filter-npm-deps serves as a simple solution for filtering dependencies, there are other tools available that you might find useful:
- [jq](https://jqlang.github.io/jq/manual/) is a powerful command-line tool for processing JSON data. It can be used to filter for nested properties, but it requires explicit handling of all three dependency fields.
- [install-subset](https://github.com/tabrindle/install-subset) offers a different approach by enabling you to define specific subsets of npm dependencies that should be installed.