NPM-QUERY(1) | General Commands Manual | NPM-QUERY(1) |
NAME¶
npm-query
Synopsis¶
<!-- AUTOGENERATED USAGE DESCRIPTIONS -->
Description¶
The npm query command allows for usage of css selectors in
order to retrieve
an array of dependency objects.
Piping npm query to other commands¶
# find all dependencies with postinstall scripts & uninstall them npm query ":attr(scripts, [postinstall])" | jq 'map(.name)|join("\n")' -r | xargs -I {} npm uninstall {} # find all git dependencies & explain who requires them npm query ":type(git)" | jq 'map(.name)' | xargs -I {} npm why {}
Extended Use Cases & Queries¶
// all deps * // all direct deps :root > * // direct production deps :root > .prod // direct development deps :root > .dev // any peer dep of a direct deps :root > * > .peer // any workspace dep .workspace // all workspaces that depend on another workspace .workspace > .workspace // all workspaces that have peer deps .workspace:has(.peer) // any dep named "lodash" // equivalent to [name="lodash"] #lodash // any deps named "lodash" & within semver range ^"1.2.3" #lodash@^1.2.3 // equivalent to... [name="lodash"]:semver(^1.2.3) // get the hoisted node for a given semver range #lodash@^1.2.3:not(:deduped) // querying deps with a specific version #lodash@2.1.5 // equivalent to... [name="lodash"][version="2.1.5"] // has any deps :has(*) // deps with no other deps (ie. "leaf" nodes) :empty // manually querying git dependencies [repository^=github:], [repository^=git:], [repository^=https://github.com], [repository^=http://github.com], [repository^=https://github.com], [repository^=+git:...] // querying for all git dependencies :type(git) // get production dependencies that aren't also dev deps .prod:not(.dev) // get dependencies with specific licenses [license=MIT], [license=ISC] // find all packages that have @ruyadorno as a contributor :attr(contributors, [email=ruyadorno@github.com])
Example Response Output¶
- •
- an array of dependency objects is returned which can contain multiple copies of the same package which may or may not have been linked or deduped
[
{
"name": "",
"version": "",
"description": "",
"homepage": "",
"bugs": {},
"author": {},
"license": {},
"funding": {},
"files": [],
"main": "",
"browser": "",
"bin": {},
"man": [],
"directories": {},
"repository": {},
"scripts": {},
"config": {},
"dependencies": {},
"devDependencies": {},
"optionalDependencies": {},
"bundledDependencies": {},
"peerDependencies": {},
"peerDependenciesMeta": {},
"engines": {},
"os": [],
"cpu": [],
"workspaces": {},
"keywords": [], ...
}, ...
Configuration¶
<!-- AUTOGENERATED CONFIG DESCRIPTIONS -->
See Also¶
- •
- dependency selectors
December 2022 | 9.2.0 |