$h4X4_|=73}{ has asked for the wisdom of the Perl Monks concerning the following question:

I have looked through some of the Perl modules that minify HTML, CSS and JS, But none do exactly what I want done.
There are a few minify modules I have seen that come close HTML::Packer, CSS::Packer and JavaScript::Packer.
Those modules will manly remove extra white-spaces and condense the markup or code so it can be downloaded faster.

What I am looking for is a module that can compare HTML, CSS and JavaScript files. Then rebuild the HTML with only the CSS and JavaScript used in the HTML.
Anyone know if this module exists?

Update: The idea is to have the CSS and JavaScript used in the source of the HTML so no more files are needed for downloading, making the trip to the site faster.

Replies are listed 'Best First'.
Re: Minify HTML, CSS and JS Perl modules
by haukex (Archbishop) on Jan 21, 2017 at 10:47 UTC

    Hi $h4X4_|=73}{,

    What I am looking for is a module that can compare HTML, CSS and JavaScript files. Then rebuild the HTML with only the CSS and JavaScript used in the HTML.

    Note that JavaScript can dynamically modify CSS, JavaScript, and HTML. So, to find out which CSS classes and JavaScript functions are used, you'd have to execute the JavaScript and trace all the function calls and accesses to CSS classes somehow. And if any user input is involved, you'd never be certain which functions and classes will be used. So to achieve your goal, you'd have to be certain that none of these dynamic accesses are happening. Is that the case in your JS?

    Update: The idea is to have the CSS and JavaScript used in the source of the HTML so no more files are needed for downloading, making the trip to the site faster.

    First step in optimization: measure the current status, so that later you know how much of a speed-up you have achieved. How slow is the page load currently? How many different HTML, CSS and JS files with what sizes are we talking about?

    Regards,
    -- Hauke D