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;
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' { app; } 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.