The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Plugin::AssetPack - Compress and convert css, less, sass, javascript and coffeescript files

DESCRIPTION

Mojolicious::Plugin::AssetPack has a very limited feature set, especially when it comes to processing JavaScript. It is recommended that you switch to Mojolicious::Plugin::Webpack if you want to write modern JavaScript code.

Existing user?

It is very simple to migrate from Mojolicious::Plugin::AssetPack to Mojolicious::Plugin::Webpack. Just check out the one line change in "MIGRATING-FROM-ASSETPACK" in Mojolicious::Plugin::Webpack.

Don't want to switch?

Your existing code will probably continue to work for a long time, but it will get more and more difficult to write new working JavaScript with Mojolicious::Plugin::AssetPack as time goes by.

New user?

Look no further. Just jump over to Mojolicious::Plugin::Webpack.

HELPERS

asset

  $self = $app->asset;
  $self = $c->asset;
  $bytestream = $c->asset($topic, @args);
  $bytestream = $c->asset("app.css", media => "print");

asset() is the main entry point to this plugin. It can either be used to access the Mojolicious::Plugin::AssetPack instance or as a tag helper.

The helper name "asset" can be customized by specifying "helper" when registering the plugin.

ATTRIBUTES

minify

  $bool = $self->minify;
  $self = $self->minify($bool);

Set this to true to combine and minify the assets. Defaults to false if "mode" in Mojolicious is "development" and true otherwise.

route

  $route = $self->route;
  $self = $self->route($route);

A Mojolicious::Routes::Route object used to serve assets. The default route responds to HEAD and GET requests and calls serve_asset() on "store" to serve the asset.

The default route will be built and added to the application when "process" is called the first time.

store

  $obj = $self->store;
  $self = $self->store(Mojolicious::Plugin::AssetPack::Store->new);

Holds a Mojolicious::Plugin::AssetPack::Store object used to locate, store and serve assets.

tag_for

Deprecated. Use "renderer" in Mojolicious::Plugin::AssetPack::Asset instead.

ua

  $ua = $self->ua;

Holds a Mojo::UserAgent which can be used to fetch assets either from local application or from remote web servers.

METHODS

pipe

  $obj = $self->pipe($name);
  $obj = $self->pipe("Css");

Will return a registered pipe by $name or undef if none could be found.

process

  $self = $self->process($topic => @assets);
  $self = $self->process($definition_file);

Used to process assets. A $definition_file can be used to define $topic and @assets in a separate file.

$definition_file defaults to "assetpack.def".

processed

  $collection = $self->processed($topic);

Can be used to retrieve a Mojo::Collection object, with zero or more Mojolicious::Plugin::AssetPack::Asset objects.

register

  $self->register($app, \%config);

Used to register the plugin in the application. %config can contain:

  • helper

    Name of the helper to add to the application. Default is "asset".

  • pipes

    This argument is mandatory and need to contain a complete list of pipes that is needed. Example:

      $app->plugin(AssetPack => {pipes => [qw(Sass Css Combine)]);
  • proxy

    A hash of proxy settings. Set this to 0 to disable proxy detection. Currently only "no_proxy" is supported, which will set which requests that should bypass the proxy (if any proxy is detected). Default is to bypass all requests to localhost.

    See "detect" in Mojo::UserAgent::Proxy for more information.

SEE ALSO

Mojolicious::Plugin::Webpack.

COPYRIGHT AND LICENSE

Copyright (C) 2020, Jan Henning Thorsen

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org

Alexander Rymasheusky

Mark Grimes - mgrimes@cpan.org

Per Edin - info@peredin.com

Viktor Turskyi