gulp-express

gulp livereload plugin

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
gulp-express
5670.3.58 years ago9 years agoMinified + gzip package size for gulp-express in KB

Readme

please use gulp-live-server instead, it's a new version of gulp-express with a better name and new features. === !Build Status12 !Livereload downloads34 !Tag98 !MIT Licensed5 A gulp plugin which serve the app with livereload, internally, it does the following: use ChildProcess.spawn to start a node process; use tiny-lr provide livereload ability;

Install

NPM

Update notice

  • v0.3.0
> change signature of `server.run`. the third param `livereload` is used to config tiny-lr server.
  • v0.2.0
> get `console.log` back.
  • v0.1.12
> `options.lr` is used for creating tiny-lr server.  `options` here is the second parameter for [server.run](#serverrunargsoptions).
  • v0.1.7
> change signature for [server.run](#serverrunargsoptions), split `options`  into `args` and `options`.
  • v0.1.5
> pipe support added for [server.notify](#servernotifyevent)

API

server.run(args,options,livereload)

Run/re-run the script file, which will create a http(s) server. Start a livereload(tiny-lr) server if it's not started yet. Use the same arguments with ChildProcess.spawn with 'node' as command.
  • args - Array - Array List of string arguments. The default value is ['app.js'].
```js options = {
cwd: undefined
} options.env = process.env; options.env.NODEENV = 'development'; ```
  • livereload - Boolean|Number|Object - The option for tiny-lr server. The default value is 35729.
* `false` - will disable tiny-lr livereload server.
* `number` - treated as port number of livereload server.
*  `object` - used to create tiny-lr server `new tinylr.Server(livereload);`.

server.stop()

Stop the instantiated spawned server programmatically, and the tiny-lr server.

server.notify(event)

Send a notification to the tiny-lr server in order to trigger a reload on page. pipe support is added after v0.1.5, so you can also do this: ```js gulp.src('css/.css') // … .pipe(gulp.dest('public/css/')) .pipe(server.notify()) ```
  • event (required when server.notify is invoked without pipe) - Object - Event object that is normally passed to gulp.watch callback.
Should contain path property with changed file path.

Usage

```js // gulpfile.js var gulp = require('gulp'); var server = require('gulp-express'); gulp.task('server', function () {
// Start the server at the beginning of the task
server.run(['app.js']);
// Restart the server when file changes
gulp.watch(['app/**/*.html'], server.notify);
gulp.watch(['app/styles/**/*.scss'], ['styles:scss']);
//gulp.watch(['{.tmp,app}/styles/**/*.css'], ['styles:css', server.notify]);
//Event object won't pass down to gulp.watch's callback if there's more than one of them.
//So the correct way to use server.notify is as following:
gulp.watch(['{.tmp,app}/styles/**/*.css'], function(event){
gulp.run('styles:css');
server.notify(event);
//pipe support is added for server.notify since v0.1.5,
//see https://github.com/gimm/gulp-express#servernotifyevent
});
gulp.watch(['app/scripts/**/*.js'], ['jshint']);
gulp.watch(['app/images/**/*'], server.notify);
gulp.watch(['app.js', 'routes/**/*.js'], [server.run]);
}); ``` ```js // app.js var express = require('express'); var app = module.exports.app = exports.app = express(); //you won't need 'connect-livereload' if you have livereload plugin for your browser app.use(require('connect-livereload')()); ```