Skip to content

schickling/gulp-webserver

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
ssl
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

gulp-webserver Build Status

Streaming gulp plugin to run a local webserver with LiveReload

Hint: This is a rewrite of gulp-connect

Install

$ npm install --save-dev gulp-webserver

Usage

The gulp.src('root') parameter is the root directory of the webserver. Multiple directories are possible.

var gulp = require('gulp');
var webserver = require('gulp-webserver');

gulp.task('webserver', function() {
  gulp.src('app')
    .pipe(webserver({
      livereload: true,
      directoryListing: true,
      open: true
    }));
});

Options

Key Type Default Description
host String localhost hostname of the webserver
port Number 8000 port of the webserver
path String / path to the webserver
livereload Boolean/Object false whether to use livereload. For advanced options, provide an object. You can use the 'port' property to set a custom live reload port and the filter function to filter out files to watch. The object also needs to set enable property to true (e.g. enable: true) in order to activate the livereload mode. It is off by default.
directoryListing Boolean/Object false whether to display a directory listing. For advanced options, provide an object with the 'enable' property set to true. You can use the 'path' property to set a custom path or the 'options' property to set custom serve-index options.
fallback String undefined file to fall back to (relative to webserver root)
open Boolean/String false open the localhost server in the browser. By providing a String you can specify the path to open (for complete path, use the complete url http://my-server:8080/public/) .
https Boolean/Object false whether to use https or not. By default, gulp-webserver provides you with a development certificate but you remain free to specify a path for your key and certificate by providing an object like this one: {key: 'path/to/key.pem', cert: 'path/to/cert.pem'}.
middleware Function/Array [] a connect middleware function or a list of middleware functions
proxies Array [] a list of proxy objects. Each proxy object can be specified by {source: '/abc', target: 'http://localhost:8080/abc', options: {headers: {'ABC_HEADER': 'abc'}}}.

FAQ

Why can't I reach the server from the network?

Solution: Set 0.0.0.0 as host option.

How can I use html5Mode for my single page app with this plugin?

Solution: Set the index.html of your application as fallback option. For example:

gulp.task('webserver', function() {
  gulp.src('app')
    .pipe(webserver({
      fallback: 'index.html'
    }));
});

How can I pass a custom filter to livereload?

Solution: Set enable: true and provide filter function in filter: property of the livereload object. For example:

gulp.task('webserver', function() {
  gulp.src('app')
    .pipe(webserver({
      livereload: {
        enable: true, // need this set to true to enable livereload
        filter: function(fileName) {
          if (fileName.match(/.map$/)) { // exclude all source maps from livereload
            return false;
          } else {
            return true;
          }
        }
      }
    }));
});

How can I kill the running server?

Solution: Either by pressing Ctrl + C or programmatically like in this example:

var stream = gulp.src('app').pipe(webserver());
stream.emit('kill');

License

MIT License

About

Streaming gulp plugin to run a local webserver with LiveReload

Resources

License

Stars

Watchers

Forks

Packages

No packages published