Have ideas to improve npm?Join in the discussion! »

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

    Keywords

    none

    Install

    npm i asset-manifest

    DownloadsWeekly Downloads

    2

    Version

    0.1.0

    License

    MIT

    Last publish

    Collaborators

    • avatar