Sass and Who What Now?
These two languages have excellent support in Rails, as well as in node.js, two of the latest “hip” web development platforms, and I was surprised that someone hadn’t beaten me to the punch and created NuGet packages to enable support for these – a lot of people had solutions for different pieces, but most were proof-of-concepts or were difficult to use. With NuGet, there is zero reason that web libraries should be anything other than “one-click install”.
So without further ado, I present, SassAndCoffee – an ASP.NET library to add drop-in support for Sass/SCSS and CoffeeScript!
How to use SassAndCoffee
- Add the package reference via NuGet
- Add a .coffee, .scss, or .sass file to your project (an easy test is to just rename a CSS file to .scss)
- Reference the file as if it was a CSS or .JS file (i.e. to reference “scripts/test.coffee”, you should reference “scripts/test.js” in your SCRIPT tag)
That’s all there is to it! Files will be cached in your AppData folder and will be regenerated whenever you modify them.
How does it work?
SassAndCoffee embeds the original compilers in the DLL as (Sass 3.2.0 and CoffeeScript 1.1.0 as of this writing) and uses IronRuby and Jurassic respectively to execute the compilers against your source.
Why is this better than [SOMEOTHERPROJECT]
- No external processes are executed
- You don’t have to install Ruby or node.js
- It’s in NuGet so you don’t have to fiddle with web.config
- Files are cached and are rebuilt as-needed.
Several folks helped me out with some of the integration details of this project – if it weren’t for them, I would still be stuck in the mud right now:
- David Padbury for helping me out with the CoffeeScript compiler
- Levi Broderick for giving me a few hints as to how to rig up the HttpModule
- Jimmy Schementi for telling me the proper way to redirect ‘requires’ to an embedded resource