Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

license-report

Package Overview
Dependencies
Maintainers
2
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

license-report

creates a short report about project's dependencies (license, url etc)


Version published
Weekly downloads
33K
increased by6.02%
Maintainers
2
Weekly downloads
 
Created
Source

license report tool

Version License: MIT

Generate a license report of the projects dependencies.

Installation

npm install -g license-report

Functionality

license-report gets the dependencies of a program or package from its package.json file and for each dependency adds the installed version, the license type and the author from the corresponding package.json file in the node_modules directory and the latest available version and other data from the (npm) registry where this package was installed from.
As a prerequisite, the dependencies must be installed so that the node_modules directory exists in the path of the package.json file.

Usage

simple:
cd your/project/
license-report

by default, license-report outputs all licenses from dependencies, devDependencies, optionalDependencies and peerDependencies.
To specify one or the other, use --only; e.g.

license-report --only=dev
license-report --only=prod
license-report --only=prod,opt,peer

The 'only' option is a comma separated list of the dependencies to use.
Possible values are:

valuesegment of package.json
proddependencies
devdevDependencies
optoptionalDependencies
peerpeerDependencies
explicit package.json:
license-report --package=/path/to/package.json
customize a field's label:

Used as column headers in table / csv / html output. For html output the labels of all fields in the output must be unique.

license-report --department.label=division
customize a fields default value:

Only applicable for the fields in the list later in this document (look for "Fields with data set in the configuration of license-report")

license-report --department.value=ninjaSquad
use another registry:
license-report --registry=https://myregistry.com/
registry with authorization:

To use a npm registry that requires authorization, the option npmTokenEnvVar must contain the name of an environment variable that contains the required npm authorization token (the default name is 'NPM_TOKEN'). An example:

# if the name of the environment variable containing the bearer token for npm authorization is 'NPM_TOKEN'
license-report --registry=https://myregistry.com/ --npmTokenEnvVar=NPM_TOKEN

The name of this environment variable (in the example: 'npm_token') should not be added as an option to the license-report config file, as this implies a severe security risk, when this file is checked in into a git repository. A warning is emitted if such an option is found in the config file.

generate different outputs:
license-report --output=table
license-report --output=json
license-report --output=csv
license-report --output=html

# replace default ',' separator with something else
license-report --output=csv --delimiter="|" 

# output csv headers (fields) on first row
license-report --output=csv --csvHeaders

# use custom stylesheet for html output
license-report --output=html --html.cssFile=/a/b/c.css

# see the output immediately in your browser, use hcat (npm i -g hcat)
license-report --output=html | hcat
select fields for output:

If only a few fields are required in the output, the easiest way of selecting the fields is via --fields command line arguments.

There must be at least 2 --fields options, otherwise license-report will throw an error.

# set options with command line arguments
license-report --output=csv --fields=name --fields=installedVersion

If more fields are needed, the best way is to use a custom config file, that contains a fields array.

# set options with command line option for custom (partial) config file
license-report --output=csv --config license-report-config.json
# example of config file for backward compatible output:
{
  "fields": [
    "department",
    "relatedTo",
    "name",
    "licensePeriod",
    "material",
    "licenseType",
    "link",
    "comment",
    "installedVersion",
    "author"
  ]
}
exclude packages:
license-report --exclude=async --exclude=rc

Screenshots

screenshot screenshot1

Available fields

Fields with data of the installed packages:

fieldnamecolumn titledata source
namenamename of the package
licenseTypelicense typetype of the license of the package (e.g. MIT)
linklinklink to the repository of the package
installedFrominstalled fromthe download source for the installed package (optional field)
remoteVersionremote versionlatest available version of the package (can be different from the installed version)
installedVersioninstalled versioninstalled version of the package (can be different from the remote version)
definedVersiondefined versionversion of the package as defined in the (dev-) dependencies entry (can start with a semver range character)
commentcommentdeprecated (replaced by field 'remoteVersion'); will be removed in a future version
authorauthorauthor of the package

Fields with data set in the configuration of license-report:

fieldnamecolumn titleset value
departmentdepartment--department.value=kessler
relatedTorelated to--relatedTo.value=stuff
licensePeriodlicense period--licensePeriod.value=perpetual
materialmaterial / not material--material.value=material

More configuration options

See lib/config.js for more details e.g. on customizing the generated html data.

Use rc for further customization.

Debug report generation

By setting the debug environment variable as follows, detailed log information is generated during the report generation. For details see the documentation of the debug package on npm.

export DEBUG=license-report*

Changelog

For list of changes and bugfixes, see CHANGELOG.md.

Contributing

The CHANGELOG.md is generated with standard-changelog (using the command npm run release).

To make this possible the commit messages must follow the conventinal commits specification.

<type>: <description>

<optional body>

The following is the list of supported types:

  • build: changes that affect build components like build tool, ci pipeline, dependencies, project version, etc...
  • chore: changes that aren't user-facing (e.g. merging branches).
  • docs: changes that affect the documentation.
  • feat: changes that introduce a new feature.
  • fix: changes that patch a bug.
  • perf: changes which improve performance.
  • refactor: changes which neither fix a bug nor add a feature.
  • revert: changes that revert a previous commit.
  • style: changes that don't affect code logic, such as white-spaces, formatting, missing semi-colons.
  • test: changes that add missing tests or correct existing tests.

To ensure the syntax of commit messages commitlint is used, triggered by husky. This feature must be activated with npm run activate-commitlint once for every local clone of license-report.

ironSource logo

FAQs

Package last updated on 23 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc