node package manager
Stop writing boring code. Discover, share, and reuse within your team. Create a free org »

grunt-koa

grunt-koa

This is a Grunt task for running a Koa web server.

Installing

Requires NodeJS v0.12.0 or greater. NodeJS 4 recommended.

npm install grunt-koa --save-dev

Configuration

Example of serving static content. This is useful if you just want to serve a set of static files from a build directory at the end of your grunt build. This example serves content from the static/ directory.

    grunt.initConfig({
        koa: {
            serve: {
                options: {
                    static: 'static'
                }
            }
        }
    });
 
    grunt.loadNpmTasks('grunt-koa');
 
    grunt.registerTask('default', ['koa:serve']);
 

Example of custom middleware. This is useful when you want to run a Koa server with a set of middleware installed.

    var sampleMiddleware = function *(next) {
        grunt.log.writeln('sample middleware');
        yield next;
    };
 
    grunt.initConfig({
        koa: {
            serve: {
                options: {
                    middleware: [sampleMiddleware]
                }
            }
        }
    });
 
    grunt.loadNpmTasks('grunt-koa');
 
    grunt.registerTask('default', ['koa:serve']);

port (type: number, default: 8000)

Specifies the port to run Koa on.

static (type: string, default: null)

A path to serve static files from, relative to where Grunt is executed. If this option is specified, then the koa-static middleware will automatically be installed and set to serve static files using this option as the path.

middleware (type: array or function, default: null)

If this options is used to install middleware(s) into Koa. It should be set to an array of middleware functions, or a function which will be called with a reference to the Koa application. If this is set to a function, it should take the form function (koaApplication) {} and should register middleware on the passed in Koa application object. For example, these two configurations would be functionally the same:

    grunt.initConfig({
        koa: {
            serve: {
                options: {
                    middleware: [someMiddleware, moreMiddleware];
                }
            }
        }
    });
 
    grunt.initConfig({
        koa: {
            serve: {
                options: {
                    middleware: function(koaApplication) {
                        koaApplication.use(someMiddleware);
                        koaApplication.use(moreMiddleware);
                    }
                }
            }
        }
    });

livereload (type: boolean, default: false)

Not Yet Implemented. Coming Soon! If enabled, the koa-livereload middleware will be automatically loaded.