Mojolicious::Plugin::StaticCompressor - Automatic JS/CSS minifier & compressor for Mojolicious
Into the your Mojolicious application:
sub startup { my $self = shift; $self->plugin('StaticCompressor'); ~~~
(Also, you can read the examples using the Mojolicious::Lite, in a later section.)
Then, into the template in your application:
<html> <head> ~~~~ <%= js '/foo.js', '/bar.js' %> <!-- minified and combined, automatically --> <%= css '/baz.css' %> <!- minified, automatically -> ~~~~ </head>
However, this module has just launched development yet. please give me your feedback.
This Mojolicious plugin is minifier and compressor for static JavaScript file (.js) and CSS file (.css).
$ git clone git://github.com/mugifly/p5-Mojolicious-Plugin-StaticCompressor.git $ cpanm ./p5-Mojolicious-Plugin-StaticCompressor
You can use these helpers on templates and others.
Example of use on template file:
<%= js '/js/foo.js' %>
This is just available as substitution for the 'javascript' helper (built-in helper of Mojolicious).
However, this helper will output a HTML-tag including the URL which is a compressed files.
<script src="/auto_compressed/124015dca008ef1f18be80d7af4a314afec6f6dc"></script>
When this script file has output (just received a request), it is minified automatically.
Then, minified file are cached in the memory.
In addition, You can also use this helper with multiple js-files:
<%= js '/js/foo.js', '/js/bar.js' %>
In this case, this helper will output a single HTML-tag.
but, when these file has output, these are combined (and minified) automatically.
This is just available as substitution for the 'stylesheet' helper (built-in helper of Mojolicious).
If you don't want Minify, please use this.
This helper is available for purposes that only combine with multiple js-files.
This helper is available for purposes that only combine with multiple css-files.
You can disable a combine (and minify) when running your Mojolicious application as 'development' mode (such as a running on the 'morbo'), by using this option:
$self->plugin('StaticCompressor', disable_on_devmode => 1); (default: 0)
Implement the disk cache. (Currently is memory cache only.)
Improvement of the load latency in the first.
Support for LESS and Sass.
Your feedback is highly appreciated!
https://github.com/mugifly/p5-Mojolicious-Plugin-StaticCompressor/issues
Prepared a brief sample app for you, with using Mojolicious::Lite:
example/example.pl
$ morbo example.pl
Let's access to http://localhost:3000/ with your browser.
https://github.com/mugifly/p5-Mojolicious-Plugin-StaticCompressor
Mojolicious
CSS::Minifier
JavaScript::Minifier
Copyright (C) 2013, Masanori Ohgita (http://ohgita.info/).
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Thanks, Perl Mongers & CPAN authors.
To install Mojolicious::Plugin::StaticCompressor, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::StaticCompressor
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::StaticCompressor
For more information on module installation, please visit the detailed CPAN module installation guide.