node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org »

stitch-asset-server

Introduction

Stitch Asset Server is a project for compiling, bundling and serving up your assets. The goal of this tool is to provide a way to use node for general javascript development and to integrate into the existing node servers. While the tool supports convention over configuration, you are able to easily configure the following:

Why a different tool?

There are some great toos out there (stitch, connect-assets, hem, etc). The problem with all these tools is that they are not flexible and not easily extendable. This tool is extendable and should be easy to use and easy to extend if you needs are complex.

This tool provides the following:

  • simple server integration for single js/css file serving
  • ability to serve multiple css/js packages based on configuration
  • inline code configuration or static config file
  • pre-compiling assets for production with md5 digest
  • in browser testing support for your application (http://0.0.0.0:9294/test) utilizing mocha/chai
  • file watch support and recompiling on file watching

Future support:

  • script tag generation for node servers
  • ability to publish assets to cdn/server
  • configurable "compilers" so you can mix and match templateing engines/css compilers as you please. A base set of compilers (as the current set) will be defined
  • auto browser test runner with single file support using web sockets and a file watcher

Current it only supports express ~2.0.0 but will be updated to support express ~3.0.0 as well as Strata

Quick Start

Coming soon!

Sample Configuration file

A sample of what the configs and options look like can be found here

Usage

Development Tool

after installing, run asset-server

Precompiling Assets

When you go to production, you will want to pre-compile your assets. Running asset-server precompile will pre-compile your assets and create a manifest file of the assets. By default, the assets will be precompiled with an md5 hash in their name based on the contents of the file ({original name}-{md5}.{ext}).

Asset Server

Express

add the following to your server startup

{AssetCompiler} = require('stitch-asset-server')
{Options} = require('stitch-asset-server')
{ExpressAdapter} = require('stitch-asset-server')
 
app = express.createServer();
 
asset_options = new Options()
adapter = new ExpressAdapter(app)
compiler = new AssetCompiler(asset_options.build_compiler_package())
compiler.create_routes(adapter)

Thanks/Credits

This was inspired by Hem, which was created by Alex MacCaw. Parts of the source for this project was adapted based on his project.