coffee-scrunch

0.2.3 • Public • Published

Scrunch

Assembles coffee-script files.

It's like browserify, but only for coffee-script and doesn't package npm dependencies (like fs and http).

Command Line Usage

$ sudo npm install -g coffee-scrunch
$ scrunch--help

  Usage: scrunch.js [options]

  Options:

    -h, --help        output usage information
    -V, --version     output the version number
    -v, --verbose     Detailed logs
    -i, --in [file]   Input file
    -o, --out [file]  Write to file

API Usage

var scrunch = require('coffee-scrunch');
 
var options = {
    input: 'init.coffee',
    output: 'app.js', // optional
    log: false // optional
};
 
scrunch(options).then(function () {
    console.log('finished');
});

Example

# a.coffee 
= require './b'
console.log('[a] running b...')
b()
# b.coffee 
= require './c'
module.exports = ->
    console.log('[b] running c...')
    c()
# c.coffee 
module.exports = ->
    console.log('[c] ...being run')
$ scrunch -i a.coffee -o app.js
(function() {
  var _require;
 
  _require = function(index) {
    var exportsmodule;
    module = _require.cache[index];
    if (!module) {
      exports = {};
      module = _require.cache[index= {
        id: index,
        exports: exports
      };
      _require.modules[index].call(exportsmoduleexports);
    }
    return module.exports;
  };
 
  _require.cache = [];
 
  _require.modules = [
    function(moduleexports) {
      var b;
      = _require(1);
      console.log('[a] running b...');
      return b();
    }function(moduleexports) {
      var c;
      = _require(2);
      return module.exports = function() {
        console.log('[b] running c...');
        return c();
      };
    }function(moduleexports) {
      return module.exports = function() {
        return console.log('[c] ...being run');
      };
    }
  ];
 
  _require(0);
 
}).call(this);
$ coffee app.coffee
[a] running b...
[b] running c...
[c] ...being run

Changelog

0.2.3

  • Use Substacks node-resolve to resolve dependencies.

0.2.2

  • Add support for options.log. If set, it will log what it is doing. Useful for debugging.
  • Switch from kew to bluebird for promises.

0.2.1

  • Fix bug with files being loaded when they don't exist
  • Log errors in bin/scrunch.js

0.2.0

  • Breaking: Rewrite api to be way easier to use
  • Use async IO and promises
  • Clean up code and add more comments
  • Write tests for most things
  • Replace require() calls to keep code size down
  • Use the same require() function as pure-cjs

Package Sidebar

Install

npm i coffee-scrunch

Weekly Downloads

1

Version

0.2.3

License

MIT

Last publish

Collaborators

  • stayradiated