sort module-deps output for deterministic browserify bundles
npm install deps-sortsort module-deps output for deterministic
browserify bundles

```
$ for((i=0;i<5;i++)); do module-deps main.js | deps-sort | browser-pack | md5sum; done
e9e630de2c62953140357db0444c3c3a -
e9e630de2c62953140357db0444c3c3a -
e9e630de2c62953140357db0444c3c3a -
e9e630de2c62953140357db0444c3c3a -
e9e630de2c62953140357db0444c3c3a -
or using browserify --deps on a voxeljs project:
``
$ for((i=0;i<5;i++)); do browserify --deps browser.js | deps-sort | browser-pack | md5sum; done
fb418c74b53ba2e4cef7d01808b848e6 -
fb418c74b53ba2e4cef7d01808b848e6 -
fb418c74b53ba2e4cef7d01808b848e6 -
fb418c74b53ba2e4cef7d01808b848e6 -
fb418c74b53ba2e4cef7d01808b848e6 -
To use this module programmatically, write streaming object data and read
streaming object data:
` js
var sort = require('../')();
var JSONStream = require('JSONStream');
var parse = JSONStream.parse([ true ]);
var stringify = JSONStream.stringify();
process.stdin.pipe(parse).pipe(sort).pipe(stringify).pipe(process.stdout);
`
` js`
var depsSort = require('deps-sort');
Return a new through stream that should get written
module-deps objects and will output
sorted objects.
opts can be:
* opts.index - when true, for each module-deps row, insert row.index withrow.indexDeps
the numeric index and like row.deps but mapping require
strings to row indices
* opts.expose - array of names or object mapping names to true not to mangleopts.index
with integer indexes when is turned on. If opts.expose maps names
to strings, those strings will be used to resolve the indexed references.
* opts.dedupe - set row.dedupe for files that match existing contents. Setsrow.dedupeIndex when opts.index is enabled. When row.dedupe is set,row.sameDeps will be set to a boolean of whether the dependencies at the
dedupe target match (true) or just the source content (false).
Input objects are file objects in the [module-deps][] shape. They must at least
have these properties:
* row.id - a unique identifier for the filerow.source
* - the file contentsrow.deps
* - dependencies for this file, mapping strings as used inrequire()
to row IDs.
All the input properties, and:
* row.index - when opts.index is true, the sorted numeric index of the rowrow.indexDeps
* - like row.deps, but mapping to row.index instead ofrow.id
row.dedupe
* - when opts.dedupe is true, contains the row ID of a file withrow.dedupeIndex
identical contents
* - like row.dedupe, but contains the row.index insteadrow.id
of
With npm do:
```
npm install deps-sort
MIT
[module-deps]: https://github.com/browserify/module-deps#output-objects