Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automatizando tarefas no WordPress com GruntJS

Automatizando tarefas no WordPress com GruntJS

Palestra sobre GruntJS para WordCamp Porto Alegre. Os arquivos dessa apresentação estão em: https://github.com/fdaciuk/talks/tree/master/2013/wordcamp-porto-alegre

Fernando Daciuk

July 13, 2013
Tweet

More Decks by Fernando Daciuk

Other Decks in Technology

Transcript

  1. O que é GruntJS? Pra quê ele serve? Porque ele

    foi escrito em Javascript? Tenho medo de Javascript!
  2. 2 arquivos package.json { “name” : “project_name”, “version” : “1.0.0”,

    “title” : “Project Title”, “homepage” : “http://www.seusite.com.br” } Gruntfile.js module.exports = function( grunt ) { grunt.initConfig({ // Suas tasks aqui }); };
  3. Minificar CSS Instalando Plugins no GruntjS [sudo] npm install --save-dev

    grunt-contrib-cssmin Talvez precise, talvez não. Instala o módulo Salva nas dependências do package.json Plugin que será instalado
  4. $ grunt cssmin Gruntfile.js Terminal module.exports = function( grunt )

    { grunt.initConfig({ cssmin : { combine : { files : { ‘style.css’ : [ ‘assets/css/style.css’ ] } } } // cssmin }); grunt.loadNpmTasks( ‘grunt-contrib-cssmin’ ); }; Configurando a Task no Gruntfile.js
  5. Minificar JS Gruntfile.js module.exports = function( grunt ) { grunt.initConfig({

    uglify : { options : { mangle : true }, js : { files : { ‘assets/js/main.js’ : [ ‘assets/_js/scripts.js’ ] } } } // uglify }); grunt.loadNpmTasks( ‘grunt-contrib-uglify’ ); }; $ grunt uglify Terminal
  6. Executando mais de uma Task Gruntfile.js module.exports = function( grunt

    ) { grunt.initConfig({ ... }); grunt.loadNpmTasks( ‘grunt-contrib-cssmin’ ); grunt.loadNpmTasks( ‘grunt-contrib-uglify’ ); // Task default grunt.registerTask( ‘default’, [ ‘cssmin’, ‘uglify’ ] ); }; $ grunt Terminal
  7. Dá pra usar variáveis no GruntJS. Mostrar como chamar uma

    variável no GruntJS. Mostrar o banner do uglify e a dica do comentário com ! para não remover ao minificar. Melhorando o Gruntfile.js Usando variáveis Gruntfile.js module.exports = function( grunt ) { grunt.initConfig({ assets_path : ‘assets’, css_src : ‘<%= assets_path %>/css’, js_src : ‘<%= assets_path %>/_js’, js_build : ‘<%= assets_path %>/js’, cssmin : { combine : { files : { ‘style.css’ : [ ‘<%= css_src %>/style.css’ ] } } }, // cssmin ... }); };
  8. Dá pra usar variáveis no GruntJS. Mostrar como chamar uma

    variável no GruntJS. Mostrar o banner do uglify e a dica do comentário com ! para não remover ao minificar. Melhorando o Gruntfile.js Separando as Tasks: Gruntfile.js head_scripts : { files : { ‘<%= js_build %>/head-scripts.js’ : [ ‘<%= js_src %>/lib/modernizr.js’ ] } }, js : { files : { ‘<%= js_build %>/main.js’ : [ ‘<%= js_src %>/scripts.js’ ] } } $ grunt uglify:head_scripts Terminal
  9. Dá pra usar variáveis no GruntJS. Mostrar como chamar uma

    variável no GruntJS. Mostrar o banner do uglify e a dica do comentário com ! para não remover ao minificar. Melhorando o Gruntfile.js Pegando dados do package.json: Gruntfile.js module.exports = function( grunt ) { grunt.initConfig({ pkg : grunt.file.readJSON( ‘package.json’ ), banner : ‘/*! <%= pkg.name %> - v<%= pkg.version %> - ’ + ‘<%= grunt.template.today( “yyyy-mm-dd” ) %> */’, uglify : { options : { banner : ‘<%= banner %>’ }, ... }, // uglify ... }); };