asset-manifest

0.1.0 • Public • Published

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'
    ]
}

Readme

Keywords

none

Package Sidebar

Install

npm i asset-manifest

Weekly Downloads

0

Version

0.1.0

License

MIT

Last publish

Collaborators

  • rmathis