All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
-
Added exception support to the following rules:
no-absolute-version-dependencies
no-absolute-version-devDependencies
no-caret-version-dependencies
no-caret-version-devDependencies
no-tilde-version-dependencies
no-tilde-version-devDependencies
prefer-absolute-version-dependencies
prefer-absolute-version-devDependencies
prefer-caret-version-dependencies
prefer-caret-version-devDependencies
prefer-no-version-zero-dependencies
prefer-no-version-zero-devDependencies
prefer-tilde-version-dependencies
prefer-tilde-version-devDependencies
Addresses #93
-
New rule: prefer-no-devDependencies]
-
name-format
now checks the following things:- Name is lowercase
- Name is less than 214 characters. This includes scope.
- Name doesn't start with a
.
or a_
.
Addresses #115
-
Improved schema validation that runs against npm-package-json-lint config files. Highlights include:
- Better error messages. Ex:
- severity must be either "off", "warning", or "error".
- Array type rules now ensure at least one item is passed.
- Array type rules now validate unique items are passed.
- Better error messages. Ex:
- Dropped support for Node 6 and 7.
- New rule: require-types.
- New rule: require-typings.
Addresses #109 from @ceilfors.
- @lddubeau resolved an issue with how require.resolve was implemented. The issue was causing npm-package-json-lint to crash on Node 12.3.0. Please see #110 for more details.
Huge shout-out to @lddubeau for identifying and fixing this issue 🎉
- New rule: require-repository-directory.
Huge shout-out to @greatislander for contributing the rule! 🎉
- New cli flag,
ignorePath
(-i
) - Path to a file containing patterns that describe files to ignore.
Huge shout-out to @evilebottnawi for contributing the new cli option! 🎉
- Resolved an issue with the following rules:
no-caret-version-dependencies
no-caret-version-devDependencies
no-tilde-version-dependencies
no-tilde-version-devDependencies
Addresses #97 from @agvctm.
- New rule: valid-values-name-scope.
Huge shout-out to @jogold for contributing these rules! 🎉
- Resolved an issue in the CLIEngine where the file path separator was incompatible with Windows path separators. Addresses #91 from @aduth.
- New rule: description-format. Addresses #89 from @ntwb.
- New rule: no-absolute-version-dependencies.
- New rule: no-caret-version-dependencies.
- New rule: no-tilde-version-dependencies.
- New rule: no-absolute-version-devDependencies.
- New rule: no-caret-version-devDependencies.
- New rule: no-tilde-version-devDependencies.
Huge shout-out to @fastfrwrd for contributing these rules! 🎉
- New rule: valid-values-engines. Addresses #85 from @ntwb.
- Addressed issue, from @ntwb, #79.
- Added support for glob based package.json file detection. Addresses #74 from @dnepro.
- Added support for recursive config file detection. Addresses #75 from @dnepro.
- Added support for running npm-package-json-lint programmatically. Addresses #76 from @minijus.
- New rule: valid-values-publishConfig. Addresses #80 from @ntwb.
- Improved rule: scripts-type. Addresses #77 from @reggi.
- npm-package-json-lint's cli has been renamed from
pjl-cli
tonpmPkgJsonLint
. The cli interface has also changed. Multiple patterns can now specified. Please runnpmPkgJsonLint --help
for examples.
- Dropped support for Node 4 and 5.
- Addressed issue, from @akihyro, #71. Bundled dependencies should be arrays instead of objects. Impacts bundledDependencies-type
- Addressed issue, from @hassankhan, #64. This change adds support for authors as objects. Impacts valid-values-author
- New rule: require-module
- Addressed issues, from @moshest, #57 and #58. This change gives better recommendations for what change is required by the user to resolve the lint issue. It also no longer throws an error when a property exists in the package.json file that doesn't exist in the preferred property order array. Thanks @moshest.
- Update all rules to export the type of rule they are. Current valid values are "standard" and "array". The rules loader has been updated to references the ruleType export rather than trying to maintain a separate list of array style rules. This change closes issue #56 and should prevent the issue discussed in issue #53 from occurring again.
- Rule loader so it recognized prefer-property-order as an array type rule.
- Updated rule: prefer-property-order based on discussion with @moshest in issue #50 and @evilebottnawi in issue #53.
- New rule: prefer-property-order
- The ability to pass config using:
- a
npmPackageJsonLintConfig
property inpackage.json
- a
.npmpackagejsonlintrc
file in the current working directory - a
npmpackagejsonlint.config.js
file that exports a config object in the current working directory. - a global
.npmpackagejsonlintrc
file in the root of your user directory - a global
npmpackagejsonlint.config.js
file that exports a config object in the root of your user directory
- a
- Bumped dependencies
- Converted grunt tasks to npm scripts
- Update cli output format for cleaner output
@chr1shaefn3r enhanced the following rules so they no longer require a leading equals sign
Thanks to @chr1shaefn3r for submitting the new rules
- New rule: prefer-absolute-version-dependencies
- New rule: prefer-absolute-version-devDependencies
- Improved the message when prefer-alphabetical-dependencies, prefer-alphabetical-devDependencies, prefer-alphabetical-bundledDependencies, prefer-alphabetical-optionalDependencies, or prefer-alphabetical-peerDependencies are triggered. Now failing dependency is communicated as well as the dependency it must be placed after.
- New rule: prefer-alphabetical-dependencies
- New rule: prefer-alphabetical-devDependencies
- New rule: prefer-alphabetical-bundledDependencies
- New rule: prefer-alphabetical-optionalDependencies
- New rule: prefer-alphabetical-peerDependencies
- grunt tasks, tests, and project linting files from published node module
- Add new quiet (-q) option to cli that suppresses output if no errors
- Array style rules, like
valid-values-author
, so they can be easily turned off by settingvalid-values-author: 'off'
- CLI so process exit code remains 0 if only warnings are detected
- CLI process exit code to 2 (non-zero) if issues are detected in the scan
- Issue .npmpackagejsonlintrc.json files that only have a extends value with no rules object
- Issue with relative path local config extension modules. Now relative path modules are load relative to the current working directory of the active process.
- Support configuration extension!! Now you can add "extends" to your rc file to extend a based configuration. This is great for sharing a standard ruleset between many projects. Please see the wiki for more information.
- An optional cli flag for controlling rule severity. Please see the README.md for examples.
- Default configuration is no longer provided. Please see the new default config module, npm-package-json-lint-config-default
- New rule: valid-values-license
- New rule: prefer-no-engineStrict
- Bump grunt-eslint to version 19.0.0
- Move to shared eslint-config-tc module
- Error handling if an invalid rule name is included in
.npmpackagejsonlintrc.json
.
- Issue resolving file path of
.npmpackagejsonlintrc.json
when running the cli from a nested directory undernode_modules
- New rule: require-bin
- New rule: require-bugs
- New rule: require-bundledDependencies
- New rule: require-config
- New rule: require-contributors
- New rule: require-cpu
- New rule: require-dependencies
- New rule: require-devDependencies
- New rule: require-directories
- New rule: require-files
- New rule: require-homepage
- New rule: require-main
- New rule: require-man
- New rule: require-optionalDependencies
- New rule: require-os
- New rule: require-peerDependencies
- New rule: require-preferGlobal
- New rule: require-private
- New rule: require-publishConfig
- New rule: require-repository
- New rule: require-scripts
- New rule: os-type
- New rule: cpu-type
- New rule: optionalDependencies-type
- New rule: peerDependencies-type
- New rule: bundledDependencies-type
- Ability to specify whether a rule should be an error or a warning
- Defaults now only include "type" rules and rules for name/version
- Renamed
author-required
torequire-author
- Renamed
description-required
torequire-description
- Renamed
engines-required
torequire-engines
- Renamed
license-required
torequire-license
- Renamed
name-required
torequire-name
- Renamed
repository-required
torequire-repository
- Renamed
version-required
torequire-version
- Renamed
bugs-recommended
torequire-bugs
- Renamed
homepage-recommended
torequire-homepage
- Renamed
keywords-recommended
torequire-keywords
- Renamed
author-valid-values
tovalid-values-author
- Renamed
private-valid-values
tovalid-values-private
- Renamed
dependencies-invalid-dependencies
tono-restricted-dependencies
- Renamed
dependencies-invalid-pre-release-dependencies
tono-restricted-pre-release-dependencies
- Renamed
devDependencies-invalid-dependencies
tono-restricted-devDependencies
- Renamed
devDependencies-invalid-pre-release-dependencies
tono-restricted-pre-release-devDependencies
- Updated
man-type
to account for both settings, array and string
- New rule: prefer-caret-version-dependencies
- New rule: prefer-tilde-version-dependencies
- New rule: prefer-caret-version-devDependencies
- New rule: prefer-tilde-version-devDependencies
- New rule: prefer-no-version-zero-dependencies
- New rule: prefer-no-version-zero-devDependencies
- Update to single quotes (ESLint rule: quotes)
- Bumped deps
- Add node 6 tests on TravisCI
- ESLint to build process
- README cli alias flags
- Remove invalid README column from
- JSHint from build process
- First release