rjsmin

Module rjsmin |

# Module rjsmin

source code

rJSmin is a javascript minifier written in python.

The minifier is based on the semantics of jsmin.c by Douglas Crockford.

The module is a re-implementation aiming for speed, so it can be used at runtime (rather than during a preprocessing step). Usually it produces the same results as the original `jsmin.c`. It differs in the following ways:

- there is no error detection: unterminated string, regex and comment literals are treated as regular javascript code and minified as such.
- Control characters inside string and regex literals are left untouched; they are not converted to spaces (nor to n)
- Newline characters are not allowed inside string and regex literals, except for line continuations in string literals (ECMA-5).
- "return /regex/" is recognized correctly.
- "+ +" and "- -" sequences are not collapsed to '++' or '--'
- Newlines before ! operators are removed more sensibly
- rJSmin does not handle streams, but only complete strings. (However, the module provides a "streamy" interface).

Since most parts of the logic are handled by the regex engine it's way faster than the original python port of `jsmin.c` by Baruch Even. The speed factor varies between about 6 and 55 depending on input and python version (it gets faster the more compressed the input already is). Compared to the speed-refactored python port by Dave St.Germain the performance gain is less dramatic but still between 1.2 and 7. See the docs/BENCHMARKS file for details.

rjsmin.c is a reimplementation of rjsmin.py in C and speeds it up even more.

Both python 2 and python 3 are supported.

Version: 1.0.7

Author: André Malo

License: Apache License, Version 2.0

Functions
`str` |
jsmin(script) Minify javascript based on jsmin.c by Douglas Crockford. | source code

Function Details

### jsmin(script) | source code
Minify javascript based on jsmin.c by Douglas Crockford. Instead of parsing the stream char by char, it uses a regular expression approach which minifies the whole script with one big substitution regex. Parameters: `script` (`str`) - Script to minify Returns: `str` Minified script