| `npm run seed`<br> (<small>or</small>`node seed`) | parses all the challenge JSON files and saves them into MongoDB (code is inside [index.js](index.js)) |
| `npm run unpack` | extract challenges from `seed/challenges` into `unpacked` subdirectory, one HTML page per challenge |
| `npm run repack` | repack challenges from `unpacked` subdirectory into `seed/challenges` |
### unpack and repack
`npm run unpack` extracts challenges into separate files for easier viewing and editing. The files are `.gitignore`d and will *not* be checked in, and all mongo seed importing will keep using the existing system; this is essentially a tool for editing `challenge.json` files. These HTML files are self-contained and run their own tests -- open a browser JS console to see the test results.
When editing the unpacked files, you must only edit lines between comment fences like `<!--description-->` and `<!--end-->`. In descriptions, you can insert a paragraph break with `<!--break-->`.
Unpacked lines that begin with `//--JSON:` are parsed and inserted verbatim.
* [Challenge Style Guide](challenge-style-guide.md) - how to create and format challenges
* [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests
](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the curriculum
* [Challenge schema](../common/models/challenge.json) - lists all of the fields inside challenge, and describes some of them
* [Challenge types](../common/ap/utils/challengeTypes.js) - what the numeric challenge type values mean (enum)