Home

Awesome

简体中文<ruby> sgo <rt>rust</rt></ruby>

<p align="center"> <a href="https://github.com/jaywcjlove/sgo"> <img alt="sgo logo" src="./img/banner.svg?sanitize=true"> </a> </p> <p align="center"> <a href="https://github.com/jaywcjlove/sgo/actions"> <img alt="Build & Deploy" src="https://github.com/jaywcjlove/sgo/workflows/Build%20&%20Deploy/badge.svg"> </a> <a href="https://github.com/jaywcjlove/sgo/issues"> <img alt="Issue" src="https://img.shields.io/github/issues/jaywcjlove/sgo.svg"> </a> <a href="https://github.com/jaywcjlove/sgo/network"> <img alt="Forks" src="https://img.shields.io/github/forks/jaywcjlove/sgo.svg"> </a> <a href="https://github.com/jaywcjlove/sgo/stargazers"> <img alt="Stars" src="https://img.shields.io/github/stars/jaywcjlove/sgo.svg"> </a> <a href="https://github.com/jaywcjlove/sgo/releases"> <img alt="Releases" src="https://img.shields.io/github/release/jaywcjlove/sgo.svg"> </a> <a href="https://www.npmjs.com/package/sgo"> <img alt="npm version" src="https://img.shields.io/npm/v/sgo.svg"> </a> </p> <img align="right" width="250" src="./img/sgo.png">

A dev server for rapid prototyping. It provides a neat interface for listing the directory's contents and switching into sub folders.

In addition, it's also awesome when it comes to serving static sites. If a directory contains an index.html, serve will automatically render it instead of serving directory contents, and will serve any .html file as a rendered page instead of file's content as plaintext.

Rename: ssr => sgo
sgo: Server Go

⚠️ ssr package has been donated to a certain team in Ali.

<img src="./img/sgo-safari.png">

Features

🗂 Serve static content like scripts, styles, images from a directory.
🖥 Reroute all non-file requests like / or /admin to a single file.
♻️ Reload the browser when project files get added, removed or modified.
📚 Readable source code that encourages learning and contribution.
💥 Remove the redundancy proxy feature, Please use mocker-api.
⚛️ Preview the static page of the React/Vue/Angular project.

<br />

Quick Start

Add sgo as a dev dependency using npm i sgo -D or run directly from the terminal:

npm install -g sgo # install sgo
sgo # Create server
# or
npx sgo [--port] [--dir]
<br />

Command help

Usage: sgo [options]

Options:
  --version      Show version number                                   [boolean]
  --port, -p     Set the port.                          [number] [default: 1987]
  --reload-port  Set the reload port.                  [number] [default: 19872]
  --reload, -r   browser from reloading when files change.
                                                       [boolean] [default: true]
  --dir, -d      Specified directory.                     [string] [default: ""]
  --browser, -b  Browser from opening when the server starts.
                                                       [boolean] [default: true]
  --fallback     The file served for all non-file requests.
                                                          [string] [default: ""]
  --help         Show help                                             [boolean]

Examples:

  $ sgo                            Start a dev server.
  $ sgo --no-browser               Prevents the browser from opening when the
                                   server starts.
  $ sgo --no-reload                prevents the browser from reloading when
                                   files change.
  $ sgo --fallback dir/index.html  The file served for all non-file requests..
  $ sgo -p 2019                    Designated port.
  $ sgo -d node_modules/dir        Specified directory "node_modules/dir".

Copyright 2019

Example usage with npm scripts in a project's package.json file:

{
  "scripts": {
    "start": "npx sgo -p 2019"
  }
}
<br />

Used in Node.js

const sgo = require('sgo');

// Create server
sgo.default({ port: 1987, dir: '' });
import server from 'sgo';

// Create server
server({ port: 1987, dir: '' });
<br />

License

MIT © Kenny Wong