Easily serve plain JS scripts to the browser with auto-generated HTML.

Usage no npm install needed!

<script type="module">
  import w33bleServeScript from 'https://cdn.skypack.dev/@w33ble/serve-script';



GitHub license Build Status npm Project Status

Easily serve plain JS scripts to the browser with auto-generated HTML.

It will automatically create the HTML page that the JS script will run in, and will show the console output (using console.log, etc.) on the page.

Show console output


const serve = require('serve-script');
const http = require('http');

const src = 'alert("Hello World!");';

http.createServer(serve({ src: src })).listen(8000);

// View http://localhost:8000/ in your browser to be alerted

Also with Express:

const express = require('express');
const serve = require('serve-script');

const src = 'alert("Hello World!);';

  .use(server({ src }))


Pass the options object as the first argument to the serve-script function. It will return a function that can be used as a request listener for a server that will serve the automatically generated HTML and JS code.

The returned function can also be used as Connect middleware.


The src option can be either a string, stream, or a function. If it is a function, it must call the provided callback with an optional error and a string or stream.


  src: 'alert("Hello World!");'
  src: browserify().add('test.js').bundle()
  src: function(callback) {
    callback(myError, mySource);


The noConsole argument will disable the console redirection when it is true. By default, the generated HTML page will display the output that was printed to the console with console.log. If noConsole is true, this behavior is disabled.


Creates an HTTP server that serves the provided JS script to browsers. To make available globally, install with npm install -g serve-script.

Usage: serve-script [file] [options]

file specifies the JS file to serve. If no file is provided, uses stdin.


  • -p, --port: The HTTP port to listen on (default 8000).
  • --no-console: Do not show console.log output on the web page.