Lint
Introduction
The lint
option lets you define and run checks on the dependency tree.
If an error
is encountered, the lint process will exit with a non-zero status code.
Config File
The checks are defined in a config file that needs to be passed to the lint
command. This file can be a JavaScript or a TypeScript file.
A sample config file in TypeScript could look like this:
const config = {
rules: [
// checks go here
[
"warning", // "warning" | "error"
{
name: `sample-check`,
check: (pkg: any) => {
const description = pkg.getData("description");
if (!description) return `No description found!`;
}
}
]
]
};
export default config;
This will surface all dependencies that don't contain a description
as a warning
.
For a more in depth explanation of how to write checks, please see this guide.
Options
Argument | Description |
---|---|
lintFile | Path to the config file that contains the checks. |
--package | Package to run the checks on. Defaults to the latest version if no version is provided. |
--folder | Path to a folder that contains a local package.json . |
--depth | Depth to evaluate. If omitted, it will traverse the whole dependency tree. |
Example Usages
Lint whole dependency tree of latest React version
pkga lint ./path/to/lintConfig.ts --package react
Lint React only with specific version
pkga lint ./path/to/lintConfig.ts --package react@16.10.2 --depth 0
Lint local project
pkga lint ./path/to/lintConfig.ts --folder ./path/to/project
Rules
Currently, there is only one built in rule: the Validate Key
rule. This rule allows you to check for the existence of certain keys in the package.json
. Additionally, a custom validator can be provided for more sophisticated checks.
To write custom rules, please see this guide.