Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HenrikJoreteg/fixpack
A package.json file scrubber for the truly insane.
https://github.com/HenrikJoreteg/fixpack
Last synced: 17 days ago
JSON representation
A package.json file scrubber for the truly insane.
- Host: GitHub
- URL: https://github.com/HenrikJoreteg/fixpack
- Owner: HenrikJoreteg
- Created: 2014-02-01T07:23:20.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2022-03-02T01:44:51.000Z (over 2 years ago)
- Last Synced: 2024-05-13T16:24:55.794Z (6 months ago)
- Language: JavaScript
- Size: 98.6 KB
- Stars: 459
- Watchers: 8
- Forks: 29
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# fixpack
A package.json file scrubber for the truly insane.
It will re-write your package.json file as follows:
- name first
- description second
- version third
- author fourth
- all other keys in alphabetical order
- dependencies and devDependencies sorted alphabetically
- newline at the end of the fileIt will warn you if any of these are missing:
- description
- author
- repository
- keywords
- main
- bugs
- homepage
- licenseMaintain current indentation, End of Line, and Final New Line, or set them to your configured value
(see [configuration](#configuration)).Oh, and it will tolerate improperly quoted and comma'd JSON thanks to [ALCE](https://npmjs.org/package/alce).
Oh, and can do same if you pass it a `bower.json` file or whatnot.
Oh, and it will exit with `0` when already fixed or with `1` otherwise (so combined with `--dryRun` flag it can be used as CI check)
## Usage
1. install it globally
```
npm i -g fixpack
```2. run it in the same directory as your package.json, that's it.
```
fixpack
```## What you might do if you're clever
```
npm i cool_package --save && fixpack
```## Configuration
It's configurable. You can create a `.fixpackrc` file in your project or anywhere up the tree to your `$HOME` directory. Or overwrite options via CLI arguments.
Uses the [rc](https://www.npmjs.com/package/rc) module to do this. So you can pass all these as CLI args too.
The available options and their defaults shown below:
```js
{
// will put these first in this order if present
sortToTop: [
'name',
'description',
'version',
'author'
],
// will error if these not present
required: [
'name',
'version'
],
// will warn if these not present
warn: [
'description',
'author',
'repository',
'keywords',
'main',
'bugs',
'homepage',
'license'
],
// if `private: true` in package.json will use the next two lists instead
requiredOnPrivate: [],
warnOnPrivate: ['name', 'version', 'description', 'main'],
// sub items to sort by default
sortedSubItems: [
'dependencies',
'devDependencies',
'jshintConfig',
'scripts',
'keywords'
],
// if you set quiet to true it won't do output anything to the console
quiet: false,
// files to scrub
files: ['package.json'],
// Will not fix file, only inform if is fixed
dryRun: false,
// Will set all deps to '*'
// this may be useful because then you can
// run npm update --save && npm update --save-dev
// to install latest stable releases of everything.
wipe: false,
// Sets the expected indentation. If number, is number of spaces,
// otherwise can be string to use as indentation (like a tab).
// if undefined/null (default), indentation is detected from file and preserved.
indent: null,
// Sets line endings to be either "LF" or "CRLF"
// if undefined/null (default), newLine is detected from file and preserved.
newLine: null,
// Boolean if there should be an empty line at the end of the file.
// if undefined/null (default), finalNewLine is detected from file and preserved.
finalNewLine: null
}```
## Changelog
- 3.0.6 - Fix `false` removal issue.
- 3.0.5 - Fix coloration of warnings
- 3.0.4 - OS specific EOL
- 3.0.3 - updates to remove NSP warnings in deps.
- 2.3.0 - add `wipe` option that sets all dep versions to `*` for easier bulk updating.
- 2.2.0 - add `optionalDependencies` to auto sorted
- 2.1.0 - switched to [standard](https://github.com/feross/standard) style. Add `peerDependencies` to default sorted keys.
- 2.0.1 - don't error on missing bower file by default.
- 2.0.0 - configurable via `.fixpackrc` file using rc module.
- x.x.x - unknown miscellaneous madness and poor version tracking
- 0.0.2 [diff](https://github.com/HenrikJoreteg/fixpack/compare/v0.0.1...v0.0.2) - EOF newline
- 0.0.1 - initial release## Credits
This embarrassing display of insanity,
type-A-ness, and OCD brought to you by [@HenrikJoreteg](http://twitter.com/henrikjoreteg).## License
MIT