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

Automatizando tarefas no WordPress com GruntJS

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

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

Avatar for Fernando Daciuk

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 ... }); };