Skip to content

Library manager for compiling and serving static assets

License

Notifications You must be signed in to change notification settings

ryan-lang/Web-AssetLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Web::AssetLib - Moose-based pluggable library manager for compiling and serving static assets

VERSION

version 0.081

SYNOPSIS

Create a library for your project:

    package My::Library;

    use Moose;

    extends 'Web::AssetLib::Library';

    sub jQuery{
            return Web::AssetLib::Asset->new(
            type         => 'javascript',
            input_engine => 'LocalFile',
            rank         => -100,
            input_args => { path => "your/local/path/jquery.min.js", }
        );
    }

    1;

Compile assets from that library:

    use My::Library;

    # configure at least one input and one output plugin
    # (and optionally, a minifier plugin)
    my $lib = My::Library->new(
            input_engines => [
                    Web::AssetLib::InputEngine::LocalFile->new(
            search_paths => ['/my/assets/root/']
        )
            ],
            output_engines => [
                    Web::AssetLib::OutputEngine::LocalFile->new(
                            output_path => '/my/webserver/path/assets/'
                    )
            ]
    );

    # create an asset bundle to represent a group of assets
    # that should be compiled together:

    my $homepage_javascript = Web::AssetLib::Bundle->new();
    $hompage_javascript->addAsset($lib->jQuery);


    # compile your bundle
    my $html_tag = $lib->compile( bundle => $homepage_javascript )->as_html;

DESCRIPTION

Web::AssetLib allows you to build an easy-to-tweak input -> (minfiy) -> output pipeline for web assets, as well as a framework for managing those assets.

You have the option to compile groups of assets, or individual ones. Out of the box, Web::AssetLib supports local file, remote file, and string inputs, minification with CSS::Minifier and JavaScript::Minifier, and local file output.

Currently available plugins:

Possibilities for future plugins: non-S3 CDN outputs, SASS input, etc.

This documentation uses method signature notation as defined by Method::Signatures.

USAGE

Basic usage is covered in Web::AssetLib::Library.

The following base classes are provided for extendability:

The following objects are used to define assets or groups of assets:

Plugins provided by default:

SUPPORT

Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at https://github.com/ryan-lang/Web-AssetLib/issues. You will be notified automatically of any progress on your issue.

Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

https://github.com/ryan-lang/Web-AssetLib

 git clone https://github.com/ryan-lang/Web-AssetLib.git

AUTHOR

Ryan Lang rlang@cpan.org

About

Library manager for compiling and serving static assets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages