Package Exports
- package-json-validator
- package-json-validator/PJV.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (package-json-validator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
package.json validator
Tools to validate package.json files.
Supported Specifications
Of course, there are multiple ones to follow, which makes it trickier.
Usages
Command line
npm install package-json-validator -gSee pjv --help for usage:
Options:
--filename, -f package.json file to validate [default: "package.json"]
--spec, -s which spec to use - npm|commonjs_1.0|commonjs_1.1 [default: "npm"]
--warnings, -w display warnings [default: false]
--recommendations, -r display recommendations [default: false]
--quiet, -q less output [default: false]
--help, -h, -? this help message [default: false]Node.js
npm install package-json-validatorimport { PJV } from "package-json-validator";
PJV.validate(/* ... */);API
PJV.validate(packageData[([, spec], options)]);spec is either npm, commonjs_1.0, or commonjs_1.1
options is an object with the following available:
{
warnings: true, // show warnings
recommendations: true // show recommendations
}Example:
const { PJV } = require("package-json-validator");
PJV.validate(data, spec, options);Example1:
const { PJV } = require("package-json-validator");
const text = JSON.stringify({
name: "packageJsonValidator",
version: "0.1.0",
private: true,
dependencies: {
"date-fns": "^2.29.3",
install: "^0.13.0",
react: "^18.2.0",
"react-chartjs-2": "^5.0.1",
"react-dom": "^18.2.0",
"react-material-ui-carousel": "^3.4.2",
"react-multi-carousel": "^2.8.2",
"react-redux": "^8.0.5",
"react-router-dom": "^6.4.3",
"react-scripts": "5.0.1",
redux: "^4.2.0",
"styled-components": "^5.3.6",
"web-vitals": "^2.1.4",
},
scripts: {
start: "react-scripts start",
},
eslintConfig: {
extends: ["react-app", "react-app/jest"],
},
browserslist: {
production: [">0.2%", "not dead", "not op_mini all"],
development: [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
],
},
});
const data = PJV.validate(text);Output for above example:
console.log(data);
// {
// valid: true,
// warnings: [
// 'Missing recommended field: description',
// 'Missing recommended field: keywords',
// 'Missing recommended field: bugs',
// 'Missing recommended field: licenses',
// 'Missing recommended field: author',
// 'Missing recommended field: contributors',
// 'Missing recommended field: repository'
// ],
// recommendations: [
// 'Missing optional field: homepage',
// 'Missing optional field: engines'
// ]
}Contributors
Appreciation
Many thanks to @TechNickAI for creating the initial version and core infrastructure of this package! π