The state of the package
As of May 1st, 2013, @pthrasher became the maintainer of this package. It was taken over from @TrevorBurnham. I'm currently working on a 2.0.0 release that will be complete by the end of May. Main changes/features:
- Source-map support
- Move tests from node-unit over to jasmine.
- Break out pieces into separate files.
- More tests
- More documentation
You can track my progress on these tasks via Pull Request #43
In your CoffeeScript files, write Sprockets-style comments to indicate dependencies, e.g.
#= require dependency
#= require_tree dir
npm install snockets
Then in your app:
Snockets = require 'snockets' snockets = new Snockets()
Snockets instance has a
depGraph property, an instance of dep-graph. You can
scan a file to just update the dependency graph:
snockets.scan 'dir/foo.coffee', (err, depGraph) -> ...
To get a list of filenames showing the series of dependencies the scanned file has, you'd use
snockets.getCompiledChain 'dir/foo.coffee', (err, jsList) -> ...
The result is in the format
Snockets can also provide a single compiled, concatenated file (optionally run through UglifyJS if the
minify option is passed in):
snockets.getConcatenation 'dir/foo.coffee', minify: true, (err, js) -> ...
Note that you don't need to
scan before or after running
getConcatenation; they update the dependency graph the same way that
By default, Snockets uses only async file methods. You can pass the option
async: false to either of its methods if you want it to be synchronous instead. In synchronous mode, you can use either callbacks or return values, e.g.
js = snockets.getConcatenation 'dir/foo.coffee', async: false