express-stream-compressed-static
v0.0.2
Published
An expressjs middleware, to compress and stream static files
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-static3. Usage Details
serveStatic(path: string, options: StaticHandlerOptions) => Function: Get the middleware handler to compress and stream static files
path: path to the static directoryoptions: seeStaticHandlerOptionsbelow
type StaticHandlerOptions
enableBrotli {boolean}: enable brotli compress when client's browser supported.trueby default.cacheControl {StaticHandlerCacheOptions | optional}: cache control optionscacheCompressedFiles {boolean | StaticHandlerCacheCompressedFilesOptions}: cache compressed files to avoid re-compress files
type StaticHandlerCacheOptions
maxAge {number}: addmax-ageto cache control options (in seconds)noTransform {boolean}: addno-transformto cache control optionspublic {boolean}: addpublicto cache control optionsadditionalValue {string}: add this value to cache control options *For example, whenmaxAge,noTransformandpublicis 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 (falseby default). For example, your file url ispath/bundle.js?v=0.0.1and 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.
