Synopsis
The lb4 copyright command runs inside a Node.js project with package.json to
add or update copyright/license header for JavaScript and TypeScript files based
on package.json and git history.
The command also supports lerna monorepos. It traverses all packages within the monorepo and apply copyright/license headers.
lb4 copyright [options]
The following is an example of such headers.
// Copyright IBM Corp. 2020. All Rights Reserved.
// Node module: @loopback/cli
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
The year(s) is built from the git history of the file and Node module is read
from the name property in package.json.
Please note the command expects git is installed.
Options
--owner : (Optional) The owner of the copyright, such as IBM Corp..
--license : (Optional) The name of the license, such as MIT.
--gitOnly : (Optional) A flag to control if only git tracked files are
updated. Default to true.
--updateLicense: (Optional) A flag to control if package.json and
LICENSE files should be updated to reflect the selected license id.
--exclude: (Optional) One or more glob patterns with , delimiter to
exclude files that match the patterns from being updated.
Interactive Prompts
The command prompts you for:
-
The copyright owner. The default value is read from
copyright.ownerorauthorin thepackage.json. -
The license name. The default value is read from
licensein thepackage.json.If the license name is
CUSTOM, you’ll be prompted to provide a custom template. For example:============================================================================= Licensed Materials - Property of <%= owner %> (C) Copyright <%= owner %> <%= years %> US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with <%= owner %>. =============================================================================To avoid such prompt, create the
license-header.templatein the root directory of your package, its content will be read as the license header template without prompting.
The default owner is IBM Corp. and license is MIT with the following
package.json.
{
"name": "@loopback/boot",
"version": "2.0.2",
"author": "IBM Corp.",
"copyright.owner": "IBM Corp.",
"license": "MIT"
}
Output
The following output is captured when lb4 copyright is run against
loopback4-example-shopping.
? Copyright owner: IBM Corp.
? License name: (Use arrow keys or type to search)
❯ MIT (MIT License)
ISC (ISC License)
Artistic-2.0 (Artistic License 2.0)
Apache-2.0 (Apache License 2.0)
...
? Do you want to update package.json and LICENSE? No
Updating project loopback4-example-recommender (packages/recommender)
Updating project loopback4-example-shopping (packages/shopping)
Updating project loopback4-example-shopping-monorepo (.)