@putout/plugin-package-json
🐊Putout plugin helps to automate fixing package.json
.
Install
npm i @putout/plugin-package-json -D
Rules
Config
{
"rules": {
"package-json/add-type": "on",
"package-json/apply-https-to-repository-url": "on",
"package-json/remove-nyc": "on",
"package-json/remove-commit-type": "on",
"package-json/remove-exports-with-missing-files": "off",
"package-json/find-file": "off"
}
}
add-type
Add type
field to package.json
:
{
"name": "hello",
"version": "1.0.0",
+ "type": "commonjs"
}
apply-https-to-repository-url
The git://
protocol for GitHub repos should not be used due security concerns.
Checkout in 🐊Putout Editor.
{
"repository": {
"type": "git",
- "url": "git://github.com/coderaiser/putout.git"
+ "url": "git+https://github.com/coderaiser/putout.git"
}
remove-nyc
- additional fields in
package.json
produces more traffic then users of your package really need; - c8 uses same config name and format so transition between tools will be much easier;
❌ Example of incorrect code
nyc
section in package.json
:
{
"nyc": {
"check-coverage": "on",
"all": "on",
"exclude": [
"**/*.spec.js",
"**/fixture",
"test",
".*.js"
],
"branches": 100,
"lines": 100,
"functions": 100,
"statements": 100
}
}
✅ Example of correct code
File .nycrc.json
:
{
"check-coverage": "on",
"all": "on",
"exclude": [
"**/*.spec.js",
"**/fixture",
"test",
".*.js"
],
"branches": 100,
"lines": 100,
"functions": 100,
"statements": 100
}
remove-commit-type
Since 🎁Wisdom v14 commitType
set to colon
be default, so it can be dropped from package.json
if it's value not paren
:
Check out in 🐊Putout Editor.
{
"name": "hello",
"version": "1.0.0",
"commitType": "colon"
}
find-file
Find package.json
inside of .filesystem.json
and applies all other package-json
rules.
Checkout in 🐊Putout Editor.
{
"name": "hello",
"version": "1.0.0",
+ "type": "commonjs"
}
remove-exports-with-missing-files
Find package.json
inside of .filesystem.json
and removes exports
with missing files.
Checkout in 🐊Putout Editor:
__putout_processor_filesystem([
"/",
["/package.json", `{
"exports": {
"./parse-options": "./lib/parse-options/index.js",
- "./loader": "./lib/loader.mjs"
}
}`],
"/lib/",
"/lib/parse-options/",
["/lib/parse-options/index.js", "export const a = 5"],
]);
License
MIT