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.790 ]
Por: Fábio Berbert de Paula em 15/04/2015 | Blog: https://fabio.automatizando.dev
#!/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);});},};}();
Transferindo arquivos com o rsync
Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland
FISL 10: Venturas e desventuras da turma do VOL
MathML - Mathematical Markup Language
Listar dados em MySQL utilizando PHP e AJAX (parte 1)
Expressões Regulares - Entenda o que são Lookahead e Lookbehind
jQuery - Criando um simples jogo da velha
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal