asset-manifest
v0.1.0
Published
Asset manifest inspired by Rails, developed for Express
Downloads
2
Readme
Asset list for Express.js
Inspired by Ruby on Rails' asset pipeline, but designed for Node and Express.
The middleware attaches groups of asset paths to the response object using res.locals. It also provides a helper method on the response to output these groups.
Currently only tested with javascript files.
Dependencies:
Options
reload: Boolean
This tells the middleware to create the manifest upon each request (true), or when the application is started (false).
minify: Boolean
This tells the middleware to use the "minified" object within each "set" in the manifest property to concatenate and minify the list of files found.
manifest: Object
This defines the "sets" of files passed to res.local.
set.path: String
This property defines the root path to prepend to the file paths while searching for files. ( ex. www/app/ ) Used for applications with a 'public' folder for serving assets.
set.prefix: String
This property defines a path to prepend to the file paths when setting the list for res.local ( ex. /app/ ) Used to define the path for the browser.
set.minified: Object
This object sets the minifier (type), path, prefix, and file name (name) to use when minifying the files found. If path is undefined, it defaults to set.path. Minifier (property 'type') is according to 'type' in the node-minify package.
set.files: Array
This is an array of string file name patterns to search for. Each string will be prepended with "set.path".
Example
{
"minify": true,
"reload": true,
"manifest": {
"lib": {
"minified": {
"type": "uglifyjs",
"path": "public/lib",
"prefix": "/lib/",
"name": "lib.js"
},
"prefix": "/lib/",
"path": "public/lib/",
"files": [
"angular/angular.js",
]
},
"src": {
"minified": {
"type": "uglifyjs",
"prefix": "/src/",
"name": "src.js"
},
"prefix": "/src/",
"path": "public/src/",
"files": [
"common/**/*.js",
"error/**/*.js",
"core/**/*.js"
]
}
}
}
With minify set to true the attached object would look like:
{
lib: [
'/lib/lib.js'
],
src: [
'/src/src.js'
]
}
Using the same object, but with minify set to true the attached object could look like:
{
lib: [
'/lib/angular/angular.js'
],
src: [
'/src/common/foo/bar.js',
'/src/error/foo/bar.js',
'/src/core/foo/bar.js',
'/src/core/foo/baz.js',
'/src/core/foo.js'
]
}