<commit_before># Server-side with Commandline

OJ has a [commandline tool](http://ojjs.org/docs.html#commandline) that can build OJ server-side. This will get you started:

## Installing Commandline Tool

(1) Install node

(2) Install the `oj` commandline tool with:

    npm install -g oj

(3) Install node packages through npm by specifying the packages you want in `package.json` and then running:

    npm install

(4) Finally compile `.oj` and `.ojc` files in this directory with:

    oj .

To be clear `.oj` is JavaScript and `.ojc` is CoffeeScript -- use whichever you prefer. Keep in mind the OJ tool can traverse through node `require` calls and unify/minify all files together. It can also minify/unify Node modules such as `underscore`, `backbone`, etc. These will be picked up from your `package.json` file as you would expect.

## Other Commandline Options

Minify with:

    oj . --minify

Watch with:

    oj . --watch

Output to a directory with:

    oj . --output <directory_name>

Recursively compile with:

    oj . --recurse

Show verbose info

    oj . --verbose 4

All of these options can be mixed and matched.
<commit_msg>Adding readme<commit_after># Server-side with Commandline

OJ has a [commandline tool](http://ojjs.org/docs.html#commandline) that can build OJ server-side. This will get you started:

## Installing Commandline Tool

(1) Install node

(2) Install the `oj` commandline tool with npm:

    npm install -g oj

(3) Install node modules specified in `package.json`:

    npm install

(4) Compile `.oj` (or `.ojc`) files in this directory with:

    oj .

Note: the OJ tool traverses through `require` includes and unifies all files together. It can inculde node modules such as `underscore`, `backbone`, etc, the same way. These will be picked up from your `package.json` file as you would expect. In addition, it can minify with `--minify` or watch with `--watch` options set.

(5) To be fancy compile with minification and watching

    oj . --minify --watch
{'fraction_non_alphanumeric': 0.08686969545681478, 'fraction_numerical': 0.004992511233150275, 'mean_word_length': 3.5135135135135136, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4539644', 'n_tokens_mistral': 621, 'n_tokens_neox': 584, 'n_words': 283}