This project is not covered by Drupal’s security advisory policy.

Important disclamer

While this was a nice PoC from my point of view, I never maintained this module. Please use mature solutions instead such as https://github.com/makinacorpus/drupal-gulpifier or https://www.drupal.org/project/advagg instead.

Original module summary

THIS MODULE IS NOT DRUPAL CORE: it provides some CSS and JS file handling replacement FOR core. Please stop filing issues for core bugs in here.

This module changes the Drupal core aggregation mecanism process. It greatly reduces I/O and aggregated number of files, and improves chances of client cache hit, therefore while it produces bigger aggregated files, it reduces greatly the bandwidth utilization while users browse.

This is achieved by bypassing the dynamic CSS and JS inclusion. Instead of including and aggregating only needed files on a per-page basis, it learns files being used site-wide while user browse, then is able to produce larger therefore more revelant files that aggregate all those atomic files whether or not they are being used on the page.

Over time, the number of aggregated files reduce to achieve a stable state where all site JS files are being aggregated in one file only, and all site CSS are being aggretated in only two files (libraries into one side, theme files into another, can be more if there are browser-specific files).

Legacy 1.x branch specifics

Once the files are stable, site administrator can then enable the full bypass mode, which will only uses the actual saved state and won't ever do any more I/O for CSS and JS inclusion, based on the cached state.

On production sites that do not changes nor update their module often, the performance boost is significant because no dynamic inclusion is being done anymore (therefore no I/O are made at all), as the bandwidth consumption is greatly reduced (because clients will cache these files at first hit and won't download them on the server after that).

This version is no longer candidate for new features, development goes to 2.x branch. Nevertheless, all appliable bugfixes made in 2.x-branch are cherry-picked on this legacy branch, bugfixes releases are made regularely.

Development 2.x branch specifics

New developements goes to 2.x branch. This carries a submodule called Resource. This module take care of the dynamic files generation on menu callbacks, and allow CSS and JS to be dynamically generated on-demand. This module is generic, and also substitute the core Image Style generation when enabled.

By doing this the Core Library main module has been greatly simplified. This change of design implies some changes, so full bypass mode and JS minification have been temporary disabled on this branch.

2.x branch will only work with PHP 5.3 from the 7.x-2.0-alpha8 release: do not update if you're still running PHP 5.2, but downgrade to 7.x-1.x branch instead, which will remain maintained for bugfixes only.

Status

This module produces really a few side-effects, depeing on the theme coding mainly. We bypass core mecanism, but keep sanefully files weighting which will avoid most potential conflicts.

Project information

Releases