/tlassets-bundle

Dump your assets using Gulp on Symfony2 project

Primary LanguagePHPMIT LicenseMIT

tlassets-bundle

Build Status

TlAssetsBundle is an alternative to Assetic, it build your assets using NodeJS, GULP and custom Twig tags on a Symfony2 project.

WARNING: This bundle is under development, do not use on production.

How it works ?

1:/ In your Twig template, use the tags "style" and "js" to give assets source path and optional filters

2:/ The parser, find all Twig template with these tags and create a JSON buffer file in cache that describe the location of source path, the destination filename and some others options

3:/ The compiler read the buffer files previously created and compile the final assets with GULP

The goal of these two steps (and not one step like assetic does), is to parse your Twig template only when your assets definition change, and compile your assets only when you modify the content of your assets file.

Prerequisites

First you have to install in your environment this tools:

  • Node JS
  • NPM

Installation

Gulp and dependencies

In order to install Gulp and his dependencies, execute command this command :

php app/console tlassets:gulp:install

Tags Twig

Below an example of tags that you can use in your Twig

{% style "@MyCustomBundle/Resources/public/less/" filter="less" %}
  <link rel="stylesheet" href="{{ asset(asset_url) }}" type="text/css" />
{% endstyle %}

{% js "@MyCustomBundle/Resources/public/js/" %}
  <script type="application/javascript" src="{{ asset(asset_url) }}" />
{% endjs %}

Install your assets:

php app/console assets:install

This command (from Symfony), copy your assets from the folder : "src/" to the folder : "web/bundles/"

Quick assets compilation

To compile quickly your assets you just have to do this:

php app/console assets:dump

This command do a tlassets:flush, a tlassets:parse and a tlassets:compile"

Generate your assets step by step

Alternatively (and it's why this bundle is different of Assetic), each task on assets construction can be do separately

Flush previous compilation

php app/console tlassets:flush

This command remove cache and assets previously generated in order to have a clean environment

Parse Twig template

php app/console tlassets:parse

This command parse your Twig template and create a JSON file on the cache directory that will be used by GULP

Compile assets

php app/console tlassets:compile

This command retrieves all file buffer previously created with the parsing command and compile the final assets files