koa-static-resolver
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

Koa Static Resolver

Koa static file resolver, dirs, default index, path replace, cache, livereload, gzip

Install

npm install koa-static-resolver --save

Usage

const Koa = require('koa');
const KSR = require('koa-static-resolver');
const app = new Koa();
app.use(KSR({
    dirs: ["./static/", "../node_modules/"],
    defaultIndex: "index.html"
}));
app.listen(8080);

cache

app.use(KSR({
    dirs: ["./static/"],
    //server cache (Memory)
    cache: {},
    //do NOT cache big size file
    cacheMaxLength: 10 * 1024 * 1024,
    //browser cache header: max-age=<seconds>
    maxAge: 600
}));

livereload

app.use(KSR({
    dirs: ["./static/"],
    livereload: '\n<script src="/livereload.js"></script>\n'
}));
//only inject to .html

gzip

app.use(KSR({
    dirs: ["./static/"],
    cache: {},
    gzip: true,
    gzipMinLength: 1024,
    gzipTypes: [".html", ".css", ".js", ".svg", ".xml"]
}));
//require headers with "Accept-Encoding": "gzip"

include/exclude

app.use(KSR({
    dirs: ["./static/"],
    include: ["include/folder", /RegExp/],
    exclude: ["exclude/folder", /RegExp/]
}));
// any files not matched include/folder will be 404 not found
// any files matched exclude/folder will be 404 not found
// support RegExp

replace

app.use(KSR({
    dirs: ["./static/"],
    replace: {
      "from_path": "to_path"
    }
}));
//when request /from_path/some_next_path/, will be replaced with /to_path/some_next_path/ to find out file path

headers

app.use(KSR({
    dirs: ["./static/"],
    headers: {
      "header_key": "header_value"
    }
}));

CHANGELOG

  • v1.0.5

    • added test case
    • added types
  • v1.0.4

    • added include/exclude match for file path
  • v1.0.3

    • fixed cache issue if maxAge=0
  • v1.0.2

    • fixed livereload

Readme

Keywords

none

Package Sidebar

Install

npm i koa-static-resolver

Weekly Downloads

35,512

Version

1.0.6

License

MIT

Unpacked Size

15.6 kB

Total Files

6

Last publish

Collaborators

  • cenfun