Como minimizar CSS e Javascript via linha de comando
Todo bom desenvolvedor web tem a preocupação de minimizar seus arquivos CSS e Javascript a fim de otimizar a renderização de suas páginas. Neste artigo veremos como fazer isso no GNU/Linux via linha de comando.
[ Hits: 9.441 ]
Por: Fábio Berbert de Paula em 15/04/2015 | Blog: https://mestrefabio.com
#!/usr/bin/perl my $source = shift; if (! -f $source) { print "Use: $0 <input-file>\n\n"; } use JavaScript::Minifier qw(minify); open(INFILE, $source) or die; print minify(input => *INFILE); close(INFILE);
/* app.js original */ /* * Template Name: Unify - Responsive Bootstrap Template * Description: Business, Corporate, Portfolio, E-commerce and Blog Theme. * Version: 1.6 * Author: @htmlstream * Website: http://htmlstream.com */ var App = function () { //Bootstrap Tooltips and Popovers function handleBootstrap() { /*Bootstrap Carousel*/ jQuery('.carousel').carousel({ interval: 15000, pause: 'hover' }); /*Tooltips*/ jQuery('.tooltips').tooltip(); jQuery('.tooltips-show').tooltip('show'); jQuery('.tooltips-hide').tooltip('hide'); jQuery('.tooltips-toggle').tooltip('toggle'); jQuery('.tooltips-destroy').tooltip('destroy'); /*Popovers*/ jQuery('.popovers').popover(); jQuery('.popovers-show').popover('show'); jQuery('.popovers-hide').popover('hide'); jQuery('.popovers-toggle').popover('toggle'); jQuery('.popovers-destroy').popover('destroy'); } //Search Box (Header) function handleSearch() { jQuery('.search').click(function () { if(jQuery('.search-btn').hasClass('fa-search')){ jQuery('.search-open').fadeIn(500); jQuery('.search-btn').removeClass('fa-search'); jQuery('.search-btn').addClass('fa-times'); } else { jQuery('.search-open').fadeOut(500); jQuery('.search-btn').addClass('fa-search'); jQuery('.search-btn').removeClass('fa-times'); } }); } //Sidebar Navigation Toggle function handleToggle() { jQuery('.list-toggle').on('click', function() { jQuery(this).toggleClass('active'); }); /* jQuery('#serviceList').on('shown.bs.collapse'), function() { jQuery(".servicedrop").addClass('glyphicon-chevron-up').removeClass('glyphicon-chevron-down'); } jQuery('#serviceList').on('hidden.bs.collapse'), function() { jQuery(".servicedrop").addClass('glyphicon-chevron-down').removeClass('glyphicon-chevron-up'); } */ } //Fixed Header function handleHeader() { jQuery(window).scroll(function() { if (jQuery(window).scrollTop()>100){ jQuery(".header-fixed .header-sticky").addClass("header-fixed-shrink"); } else { jQuery(".header-fixed .header-sticky").removeClass("header-fixed-shrink"); } }); } //Header Mega Menu function handleMegaMenu() { jQuery(document).on('click', '.mega-menu .dropdown-menu', function(e) { e.stopPropagation() }) } return { init: function () { handleBootstrap(); handleSearch(); handleToggle(); handleHeader(); handleMegaMenu(); }, //Clients Logo initSliders: function () { jQuery('#clients-flexslider').flexslider({ animation: "slide", easing: "swing", animationLoop: true, itemWidth: 1, itemMargin: 1, minItems: 2, maxItems: 9, controlNav: false, directionNav: false, move: 2 }); jQuery('#clients-flexslider1').flexslider({ animation: "slide", easing: "swing", animationLoop: true, itemWidth: 1, itemMargin: 1, minItems: 2, maxItems: 5, controlNav: false, directionNav: false, move: 2 }); jQuery('#photo-flexslider').flexslider({ animation: "slide", controlNav: false, animationLoop: false, itemWidth: 80, itemMargin: 0 }); jQuery('#testimonal_carousel').collapse({ toggle: false }); }, //Counters initCounter: function () { jQuery('.counter').counterUp({ delay: 10, time: 1000 }); }, //Parallax Backgrounds initParallaxBg: function () { jQuery(window).load(function() { jQuery('.parallaxBg').parallax("50%", 0.2); jQuery('.parallaxBg1').parallax("50%", 0.4); }); }, }; }();
/* app-min.js */ var App=function(){function handleBootstrap(){jQuery('.carousel').carousel({interval:15000,pause:'hover'});jQuery('.tooltips').tooltip();jQuery('.tooltips-show').tooltip('show');jQuery('.tooltips-hide').tooltip('hide');jQuery('.tooltips-toggle').tooltip('toggle');jQuery('.tooltips-destroy').tooltip('destroy');jQuery('.popovers').popover();jQuery('.popovers-show').popover('show');jQuery('.popovers-hide').popover('hide');jQuery('.popovers-toggle').popover('toggle');jQuery('.popovers-destroy').popover('destroy');} function handleSearch(){jQuery('.search').click(function(){if(jQuery('.search-btn').hasClass('fa-search')){jQuery('.search-open').fadeIn(500);jQuery('.search-btn').removeClass('fa-search');jQuery('.search-btn').addClass('fa-times');}else{jQuery('.search-open').fadeOut(500);jQuery('.search-btn').addClass('fa-search');jQuery('.search-btn').removeClass('fa-times');}});} function handleToggle(){jQuery('.list-toggle').on('click',function(){jQuery(this).toggleClass('active');});} function handleHeader(){jQuery(window).scroll(function(){if(jQuery(window).scrollTop()>100){jQuery(".header-fixed .header-sticky").addClass("header-fixed-shrink");} else{jQuery(".header-fixed .header-sticky").removeClass("header-fixed-shrink");}});} function handleMegaMenu(){jQuery(document).on('click','.mega-menu .dropdown-menu',function(e){e.stopPropagation()})} return{init:function(){handleBootstrap();handleSearch();handleToggle();handleHeader();handleMegaMenu();},initSliders:function(){jQuery('#clients-flexslider').flexslider({animation:"slide",easing:"swing",animationLoop:true,itemWidth:1,itemMargin:1,minItems:2,maxItems:9,controlNav:false,directionNav:false,move:2});jQuery('#clients-flexslider1').flexslider({animation:"slide",easing:"swing",animationLoop:true,itemWidth:1,itemMargin:1,minItems:2,maxItems:5,controlNav:false,directionNav:false,move:2});jQuery('#photo-flexslider').flexslider({animation:"slide",controlNav:false,animationLoop:false,itemWidth:80,itemMargin:0});jQuery('#testimonal_carousel').collapse({toggle:false});},initCounter:function(){jQuery('.counter').counterUp({delay:10,time:1000});},initParallaxBg:function(){jQuery(window).load(function(){jQuery('.parallaxBg').parallax("50%",0.2);jQuery('.parallaxBg1').parallax("50%",0.4);});},};}();
Alexa e o ranking dos principais sites Linux da comunidade brasileira
Criando sites para celular com WML
Tradutor de palavras em vários idiomas via shell
W3C - World Wide Web Consortium
Web sites dinâmicos com Ajax + JSP + MySQL
Diferenças de sites Web Standards
jQuery - Criando um simples jogo da velha
Jakarta JMeter - Testando o desempenho de seus sites
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Instalando TeamViewer no Debian 12
Conheça o Octopi, outro frontend para o Pacman com acesso ao AUR (Arch Linux e derivados)
Terminal transparente no Debian 12 com interface i3wm usando Xfce4-Terminal e Compton
O que é isso no meu navegador? [RESOLVIDO] (5)
Eu estou com problemas para usar o QBASIC no Dosbox X (2)
Ubuntu simplesmente morreu (8)
Como colocar uma assinatura digital em um código compilado ! (2)