npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gulp-express

v0.3.5

Published

gulp livereload plugin

Downloads

2,789

Readme

please use gulp-live-server instead, it's a new version of gulp-express with a better name and new features.

Build Status Livereload downloads Tag MIT Licensed

A gulp plugin which serve the app with livereload, internally, it does the following:

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.

  • v0.1.7

    change signature for server.run, split options into args and options.

  • v0.1.5

    pipe support added for server.notify

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'].
  • options - Object - The third parameter for ChildProcess.spawn, the default value is:
options = {
    cwd: undefined
}
options.env = process.env;
options.env.NODE_ENV = '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);.
  • Returns a ChildProcess instance of spawned server.

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:

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

// 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]);
});
// 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')());