require-fields
July 13, 2026 ยท View on GitHub
๐ Require specific fields to be present, always or only for published packages.
๐ผ This rule is enabled in the โ
recommended config.
Ensures that specific top-level fields are present in package.json, either unconditionally or only when the package can be published (not marked "private": true).
fields(default[]) are required in every package.json, public or private.fieldsWhenPublic(default['name', 'version', 'description', 'license', 'keywords']) are only required for a package that can actually be published; a private package is exempt.
This is the complement of restrict-fields-when-private, which flags fields that are pointless on a private package.
Options
fields
Type: string[]
Default: []
The field names that must always be present at the top level.
{
'package-json/require-fields': [
'error', {
fields: [
'name',
'version',
'engines'
]
}
]
}
fieldsWhenPublic
Type: string[]
Default: ['name', 'version', 'description', 'license', 'keywords']
The field names a public (non-private) package must declare.
Providing this option replaces the default list.
{
'package-json/require-fields': [
'error',
{
fieldsWhenPublic: [
'name',
'version',
'description',
'license',
'keywords',
'repository'
]
}
]
}
Examples
// โ
{
"name": "my-package"
}
// โ
{
"name": "my-package",
"version": "1.0.0",
"license": "MIT",
"keywords": ["cli"],
"description": "โฆ"
}
// โ
{
"private": true
}