express-stream-compressed-static
v0.0.2
Published
An expressjs middleware, to compress and stream static files
Downloads
1
Maintainers
Readme
express-stream-compressed-static
An expressjs middleware, to compress and stream static files. Support brotli
and gzip
compression (if brotli is enabled, and user's browser also support, brotli use be used)
Table of contents:
- Usage example
- Installation
- Usage Details
- License (MIT)
- [Changelog][5-changelog]
- Question and Feedback
1. Usage example
// import using require
const serveStatic = require("express-stream-compressed-static")
// import in ES6
import serveStatic from "express-stream-compressed-static";
import path from "path"
// ... your express app
// const app = Express();
// Should be the first
app.use("/static", serveStatic(path.join(__dirname, "../path-to-static-dir")))
// Or with options
app.use("/static", serveStatic(path.join(__dirname, "../path-to-static-dir"), {
enableBrotli: boolean,
cacheControl: {
maxAge: numbe,
noTransform: boolean,
public: boolean,
additionalValue: string
}
}))
2. Installation
express-stream-compressed-static
is available on npmjs, and can be install via npm
or yarn
as following (without $
ofcourse):
# with npm
$ npm i express-stream-compressed-static --save
# with yarn
$ yarn add express-stream-compressed-static
3. Usage Details
serveStatic(path: string, options: StaticHandlerOptions) => Function: Get the middleware handler to compress and stream static files
path
: path to the static directoryoptions
: seeStaticHandlerOptions
below
type StaticHandlerOptions
enableBrotli {boolean}
: enable brotli compress when client's browser supported.true
by default.cacheControl {StaticHandlerCacheOptions | optional}
: cache control optionscacheCompressedFiles {boolean | StaticHandlerCacheCompressedFilesOptions}
: cache compressed files to avoid re-compress files
type StaticHandlerCacheOptions
maxAge {number}
: addmax-age
to cache control options (in seconds)noTransform {boolean}
: addno-transform
to cache control optionspublic {boolean}
: addpublic
to cache control optionsadditionalValue {string}
: add this value to cache control options *For example, whenmaxAge
,noTransform
andpublic
is set, result will beCache-Control: max-age=xxxx, no-transform, public
type StaticHandlerCacheCompressedFilesOptions
savePath {string}
: specify where the cache files will be stored. Otherwise, it will store file in same directory as the original fileexcludeQueryString {boolean}
: save compressed file name without queryString (false
by default). For example, your file url ispath/bundle.js?v=0.0.1
and using brotli compression, when the value totrue
, the filename will besave-path/bundle.js.br
. Otherwise, the filename will besave-path/bundle.js?v=0.0.1.br
4. License
MIT
5. Changelog
- [0.0.2] added
options.cacheCompressedFiles
- [0.0.1] publish inital version
6. Question and Feedback
Feel free to start a thread for question, or feedback.