1. deps-sort
sort module-deps output for deterministic browserify bundles
deps-sort
Package: deps-sort
Created by: substack
Last modified: Fri, 11 Nov 2022 06:34:24 GMT
Version: 2.0.1
License: MIT
Downloads: 4,121,024
Repository: https://github.com/substack/deps-sort

Install

npm install deps-sort
yarn add deps-sort

deps-sort

sort module-deps output for deterministic
browserify bundles

build status

example

command-line

$ 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  -

api

To use this module programmatically, write streaming object data and read
streaming object data:

 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);

methods

 var depsSort = require('deps-sort');

var stream = depsSort(opts)

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 with
    the numeric index and row.indexDeps like row.deps but mapping require
    strings to row indices

  • opts.expose - array of names or object mapping names to true not to mangle
    with integer indexes when opts.index 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. Sets
    row.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

Input objects are file objects in the module-deps shape. They must at least
have these properties:

  • row.id - a unique identifier for the file
  • row.source - the file contents
  • row.deps - dependencies for this file, mapping strings as used in
    require() to row IDs.

output objects

All the input properties, and:

  • row.index - when opts.index is true, the sorted numeric index of the row
  • row.indexDeps - like row.deps, but mapping to row.index instead of
    row.id
  • row.dedupe - when opts.dedupe is true, contains the row ID of a file with
    identical contents
  • row.dedupeIndex - like row.dedupe, but contains the row.index instead
    of row.id

install

With npm do:

npm install deps-sort

license

MIT

Dependencies

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin