grunt-scarab
v0.0.1
Published
Grunt plugin for starting a scarab server with live reloading
Downloads
2
Readme
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.