node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »



Util to fingerprint asset filenames.


$ npm install busta

or install CLI util globally

$ npm install -g busta


busta(filename, [options,] callback)


  • filename String File to fingerprint/bust.
  • options Object optional
    • outdir String : Directory to create new file in. Default is same as the original file.
    • prefix String : String to prepend filename with. Default is base of original file.
    • noprefix Boolean : If true filename will not be prepended with prefix. Default is false.
    • encoding String : Used with hasher. Default is "utf8".
    • hash String|Function : Used with hasher. Default is "md5". If value is a function, the function will be passed the file contents and it must return a string.
  • callback(err, newfile) Function Where newfile has the following properties:
    • name Fingerprinted filename.
    • absolute Absolute path.
    • dir Directory of file.
    • fingerprint
var busta = require('busta');
busta('assets/js/example.js', function(err, fileinfo) {
  if (err) throw err;
  console.log('File %j created',;
// => File "assets/js/example-6c7473255395b5d9f020065b3915cc86.js" created 
busta('assets/js/example.js', {noprefix: true}, function(err, fileinfo) {
  if (err) throw err;
  console.log('File %j created',;
// => File "assets/js/6c7473255395b5d9f020065b3915cc86.js" created 

Command Line Usage

$ busta --file <file-to-bust> [options]
  -h, --help                 output usage information
  -V, --version              output the version number
  -f, --file <file>          file to bust - required
  -o, --outdir <outdir>      directory to write new file to
  -p, --prefix <prefix>      filename prefix - default is base name of file
  -n, --noprefix             do not use a file prefix
  -e, --encoding <encoding>  encoding used by hasher - default is utf8
  -H, --hash <hash>          hash algorithm - default is md5


$ busta --file assets/js/example.js
# => Creates assets/js/example-6c7473255395b5d9f020065b3915cc86.js
$ busta --file assets/js/example.js --noprefix
# => Creates assets/js/6c7473255395b5d9f020065b3915cc86.js
$ busta --file assets/js/example.js --prefix super-duper
# => Creates assets/js/super-duper-6c7473255395b5d9f020065b3915cc86.js
$ busta --file assets/js/example.js --outdir deploy/app
# => Creates deploy/app/example-6c7473255395b5d9f020065b3915cc86.js