A minify and bundling WebPart for Suave using YUI Compressor.
- JavaScript minification - Compress JavaScript files using YUI Compressor
- CSS minification - Compress CSS files using YUI Compressor
- Bundling - Combine multiple files into a single response
- Caching - Automatic in-memory caching of minified content
- Conditional requests - Supports
If-Modified-Sinceheader for efficient browser caching - Pre-minified file support - Files containing
.min.in the name are included without re-minification
dotnet add package Suave.MinifyBundle and minify multiple JavaScript files:
open Suave
open Suave.Filters
open Suave.Minify
let app : WebPart =
path "/jsbundle" >=> jsBundle [ "js/jquery-3.1.1.min.js"; "js/chess.js"; "js/app.js" ]Bundle and minify multiple CSS files:
open Suave
open Suave.Filters
open Suave.Minify
let app : WebPart =
path "/styles/bundle.css" >=> cssBundle [ "styles/main.css"; "styles/layout.css" ]You can also use the lower-level compress function directly:
open Suave.Minify
// Compress a list of JavaScript files
let minifiedJs = compress [ "path/to/file1.js"; "path/to/file2.js" ] "*.js"
// Compress a list of CSS files
let minifiedCss = compress [ "path/to/file1.css"; "path/to/file2.css" ] "*.css"| Function | Description |
|---|---|
jsBundle |
Creates a WebPart that serves bundled and minified JavaScript with application/x-javascript MIME type |
cssBundle |
Creates a WebPart that serves bundled and minified CSS with text/css MIME type |
bundle |
Lower-level function to create a bundling WebPart with a custom filter |
compress |
Compresses a list of files and returns the minified content as a string |
mimify |
Cached version of compress - returns cached result if available |
- Files with
.min.in the filename (e.g.,jquery.min.js) are included as-is without additional minification - The library caches minified content in memory for performance
- Supports
If-Modified-SinceHTTP header for browser caching
- .NET 10.0 or later
- Suave 3.2.2 or later
- YUICompressor.NET - JavaScript and CSS minification
- EcmaScript.Net - ECMAScript parsing
This project is part of the Suave ecosystem.
Contributions are welcome! Please feel free to submit a Pull Request.