@shongcheng/libinfo v0.5.13
libinfo
A simple utility to query https://registry.npmjs.com to generate a report on the "recentness" of dependencies used in a NPM project.
Required inputs:
package.json
- Used to extract info on which dependencies are used by the project directly (aka
direct-dep
)
- Used to extract info on which dependencies are used by the project directly (aka
package-lock.json
- Used to:
- extract all dependencies used by the project
- which dependencies are development dependencies only
- Used to:
npm-list-all.json
A JSON file generated using this command:
npm list --json --all --package-lock-only
Used to determine transitive dependencies among the dependencies
Getting Started
Recommended to install globally to avoid contaminating the report with dependencies used by this package.
npm i -g @shongcheng/libinfo
In your project folder, for e.g. in an air-gapped environment,
- Ensure
package-lock.json
is up to date. Generate the corresponding
npm-list-all.json
file, for e.g:npm list --json --all --package-lock-only > npm-list-all.json
- Ensure
For air-gapped environments, copy the required files from your project to an Internet-enabled terminal (required to access the official NPM registry for latest package data)
package.json
package-lock.json
npm-list-all.json
On Internet enabled terminal, execute the commands to generate the reports, e.g.:
NOTE:
When viewing the CSV in EXCEL, some rows may not be fully visible due to EXCEL's visual row height limit.
May need to double-click the cell to go into edit mode to see all lines in the cell.
Assuming the files in step 3 above are located in
project-dir
# change working directory cd project-dir # generate a CSV report # NOTE: When viewing the CSV in EXCEL, # some rows may not be fully visible due to EXCEL's visual row height limit. # May need to double-click the cell to go into edit mode to see all lines in the cell. libinfo npm --format=csv > report.csv # generate a HTML report libinfo npm --format=html > report.html
Alternatively, specify the paths to the files explicitly:
# generate a CSV report # NOTE: When viewing the CSV in EXCEL, # some rows may not be fully visible due to EXCEL's visual row height limit. # May need to double-click the cell to go into edit mode to see all lines in the cell. libinfo npm --format=csv -p project-dir/package.json -l project-dir/package-lock.json -n project-dir/npm-list-all-json > report.csv # generate a HTML report libinfo npm --format=html -p project-dir/package.json -l project-dir/package-lock.json -n project-dir/npm-list-all-json > report.html
Usage
$ npm install -g @shongcheng/libinfo
$ libinfo COMMAND
running command...
$ libinfo (--version)
@shongcheng/libinfo/0.5.12 win32-x64 node-v14.18.0
$ libinfo --help [COMMAND]
USAGE
$ libinfo COMMAND
...
Commands
libinfo help [COMMAND]
libinfo npm
libinfo plugins
libinfo plugins:inspect PLUGIN...
libinfo plugins:install PLUGIN...
libinfo plugins:link PLUGIN
libinfo plugins:uninstall PLUGIN...
libinfo plugins update
libinfo help [COMMAND]
Display help for libinfo.
USAGE
$ libinfo help [COMMAND] [-n]
ARGUMENTS
COMMAND Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for libinfo.
See code: @oclif/plugin-help
libinfo npm
Compares currency of packages used based on package-lock.json against latest in registry.npmjs.com
USAGE
$ libinfo npm [-l <value>] [-p <value>] [-n <value>] [--format <value>] [--timeout <value>] [--debug]
[-q]
FLAGS
-l, --package-lock=<value> [default: ./package-lock.json] path to package-lock.json to use
-n, --npm-list-all-json=<value> [default: ./npm-list-all.json] path to output from "npm list --json --all
--package-lock-only"
-p, --package=<value> [default: ./package.json] path to package.json to use
-q, --quiet quiet mode, do not output progress info to stderr
--debug debug mode, outputs more details
--format=<value> [default: csv] output format: csv, html
--timeout=<value> [default: 2] timeout in SECONDS for fetch requests to the registry
DESCRIPTION
Compares currency of packages used based on package-lock.json against latest in registry.npmjs.com
EXAMPLES
$ libinfo npm
See code: dist/commands/npm.ts
libinfo plugins
List installed plugins.
USAGE
$ libinfo plugins [--core]
FLAGS
--core Show core plugins.
DESCRIPTION
List installed plugins.
EXAMPLES
$ libinfo plugins
See code: @oclif/plugin-plugins
libinfo plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ libinfo plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ libinfo plugins:inspect myplugin
libinfo plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ libinfo plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ libinfo plugins add
EXAMPLES
$ libinfo plugins:install myplugin
$ libinfo plugins:install https://github.com/someuser/someplugin
$ libinfo plugins:install someuser/someplugin
libinfo plugins:link PLUGIN
Links a plugin into the CLI for development.
USAGE
$ libinfo plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ libinfo plugins:link myplugin
libinfo plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ libinfo plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ libinfo plugins unlink
$ libinfo plugins remove
libinfo plugins update
Update installed plugins.
USAGE
$ libinfo plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago