miniflux/vendor/github.com/tdewolff/minify/cmd/minify
Frédéric Guillot 8ffb773f43 First commit
2017-11-19 22:01:46 -08:00
..
main.go First commit 2017-11-19 22:01:46 -08:00
README.md First commit 2017-11-19 22:01:46 -08:00
util.go First commit 2017-11-19 22:01:46 -08:00
watch.go First commit 2017-11-19 22:01:46 -08:00

Minify Join the chat at https://gitter.im/tdewolff/minify

Download binaries for Windows, Linux and macOS

Minify is a CLI implementation of the minify library package.

Installation

Make sure you have Go and Git installed.

Run the following command

go get github.com/tdewolff/minify/cmd/minify

and the minify command will be in your $GOPATH/bin.

Usage

Usage: minify [options] [input]

Options:
  -a, --all
        Minify all files, including hidden files and files in hidden directories
  -l, --list
        List all accepted filetypes
  --match string
        Filename pattern matching using regular expressions, see https://github.com/google/re2/wiki/Syntax
  --mime string
        Mimetype (text/css, application/javascript, ...), optional for input filenames, has precedence over -type
  -o, --output string
        Output file or directory (must have trailing slash), leave blank to use stdout
  -r, --recursive
        Recursively minify directories
  --type string
        Filetype (css, html, js, ...), optional for input filenames
  -u, --update
        Update binary
  --url string
        URL of file to enable URL minification
  -v, --verbose
        Verbose
  -w, --watch
        Watch files and minify upon changes

  --css-decimals
        Number of decimals to preserve in numbers, -1 is all
  --html-keep-conditional-comments
  		Preserve all IE conditional comments
  --html-keep-default-attrvals
        Preserve default attribute values
  --html-keep-document-tags
        Preserve html, head and body tags
  --html-keep-end-tags
        Preserve all end tags
  --html-keep-whitespace
        Preserve whitespace characters but still collapse multiple into one
  --svg-decimals
        Number of decimals to preserve in numbers, -1 is all
  --xml-keep-whitespace
        Preserve whitespace characters but still collapse multiple into one

Input:
  Files or directories, leave blank to use stdin

Types

css     text/css
htm     text/html
html    text/html
js      text/javascript
json    application/json
svg     image/svg+xml
xml     text/xml

Examples

Minify index.html to index-min.html:

$ minify -o index-min.html index.html

Minify index.html to standard output (leave -o blank):

$ minify index.html

Normally the mimetype is inferred from the extension, to set the mimetype explicitly:

$ minify --type=html -o index-min.tpl index.tpl

You need to set the type or the mimetype option when using standard input:

$ minify --mime=text/javascript < script.js > script-min.js

$ cat script.js | minify --type=js > script-min.js

Directories

You can also give directories as input, and these directories can be minified recursively.

Minify files in the current working directory to out/ (no subdirectories):

$ minify -o out/ .

Minify files recursively in src/:

$ minify -r -o out/ src

Minify only javascript files in src/:

$ minify -r -o out/ --match=\.js src

Concatenate

When multiple inputs are given and either standard output or a single output file, it will concatenate the files together.

Concatenate one.css and two.css into style.css:

$ minify -o style.css one.css two.css

Concatenate all files in styles/ into style.css:

$ minify -o style.css styles

You can also use cat as standard input to concatenate files and use gzip for example:

$ cat one.css two.css three.css | minify --type=css | gzip -9 -c > style.css.gz

Watching

To watch file changes and automatically re-minify you can use the -w or --watch option.

Minify style.css to itself and watch changes:

$ minify -w -o style.css style.css

Minify and concatenate one.css and two.css to style.css and watch changes:

$ minify -w -o style.css one.css two.css

Minify files in src/ and subdirectories to out/ and watch changes:

$ minify -w -r -o out/ src