grunt-scarab

0.0.1 • Public • Published

grunt-scarab

Run a scarab app with static assets and live reload support.

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-scarab --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-scarab');

Scarab task

Run this task with the grunt scarab command.

Settings

options.server

Type: String Default: 'server'

This defines the directory containing the scarab app.

options.host

Type: String Default: 'localhost'

This defines the host the server is binding to. Set to '0.0.0.0' if you want the server to be accessible from the network.

options.port

Type: Number Default: 3000

This defines the port the server is binding to.

options.livereload

Type: Boolean|Number Default: true

Enables live-reloading. When set to a number, it defines the port for the live reload server. This adds the live-reload script tag to html files (using connect-livereload) and adds a /$reload route that restarts the server. It can be triggered using the scarab:restart task. More details below.

options.mount

Type: Object

Serves the static files in one or more directories (Array of Strings) under a certain path (see examples below). Dynamic routes in scarab have precedence over static assets with the same name.

options.middleware

Type: Function

Allows to add additional middleware. The given function is called with the app as the first parameter.

Example:

scarab : {
    options: {
        server: 'server',
        host: 'localhost',
        port: 3000,
        livereload: true
    },
    dev: {
        options: {
            mount: ['.tmp', 'app'],
            middleware: function(app) {
                app.use(app.middleware.cookieParser('secret'));
            }
        }
    },
    test: {
        options: {
            mount: {
                '/': ['.tmp', 'test']
            }
        }
    },
    dist: {
        options: {
            mount: {
                '/': ['dist']
            }
        }
    }
},

Live reloading:

This plugin just adds the script tag and offers a task for restarting the scarab server. For full live reload functionality, grunt-contrib-watch is recommended.

Example:

watch: {
    livereload: {
        options: {
            livereload: true
        },
        files: [
            'app/*.html',
            'app/styles/{,*/}*.css',
            '{.tmp,app}/scripts/{,*/}*.js',
            'app/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
        ]
    },
    scarabRestart: {
        options: {
            livereload: true
        },
        files: [
            'server/**/*'
        ],
        tasks: ['scarab:restart']
    }
},

The files specified under livereload make the browser reload the page, the files specified under scarabRestart restart the server and reload the page.

Readme

Keywords

none

Package Sidebar

Install

npm i grunt-scarab

Weekly Downloads

1

Version

0.0.1

License

BSD

Last publish

Collaborators

  • floridoo