{"componentChunkName":"component---src-templates-single-template-tsx","path":"/yeoman-generator-gulp-boilerplate","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://blog.nandomoreira.dev","author":{"name":"Fernando Moreira","site":"https://nandomoreira.dev","social":{"disqus":"fernandomoreira"}}}},"markdownRemark":{"html":"<p>Eu criei um <a href=\"https://github.com/nandomoreirame/gulp-boilerplate\">repositório</a> no <a href=\"https://github.com/\">Github</a> onde mantenho atualizado com um <strong>boilerplate</strong> para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar.</p>\n<p>Todo mundo já usou ou já ouviu falar dos pacotes do <a href=\"https://nodejs.org/\">NodeJS</a> os famosos <a href=\"https://www.npmjs.com/\">npm</a>, eu queria saber como fazer um e talvez, quem sabe, criar um pra saber que gostinho tem :)</p>\n<p>Eu gosto muito da ideia do <a href=\"http://yeoman.io/\">Yeoman</a> de poder iniciar um projeto rápido com os seus <em><a href=\"http://yeoman.io/generators/\">generators</a></em>, dai eu pensei: <strong>\"Porque não fazer o um generator também?\"</strong></p>\n<p>Dessa ideia que saiu o <a href=\"https://github.com/nandomoreirame/generator-gulp-boilerplate\">Generator Gulp Boilerplate</a>.</p>\n<p>A documentação do Yeoman é bem simples e fazer um generator é bem fácil, eu realmente não tive dificuldades e com a ajuda do <a href=\"http://blog.da2k.com.br/2015/03/20/criando-uma-ferramenta-de-cli-com-nodejs/\">blog do Da2k</a> eu consegui publicar ele no repositório do npmjs.com.</p>\n<h2>Como usar o Yeoman</h2>\n<p>Como o <strong>Yeoman</strong> é um componente do <strong>NodeJS</strong> então você deve instalar ele com o comando <code class=\"language-text\">npm install</code>, assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g yo</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Com o Yeoman devidamente instalado em sua máquina basta só ir no <a href=\"http://yeoman.io/generators/\">repositório</a> e escolher o generator que quer instalar, a escolha não vai ser fácil pois atualmente tem mais de <em><strong>3 mil</strong></em> generators no repositório do Yeoman.</p>\n<blockquote>\n<p>Procure por \"gulp-boilerplate\" no campo de busca que vc vai encontrar o meu generator por lá..</p>\n</blockquote>\n<p>Após escolher o seu generator basca clicar nele que você irá para o repositório do Github do generator, lá terá a documentação daquele generator, basta segui-la.</p>\n<h2>Instalando o Gulp Boilerplate</h2>\n<p>Para instalar o <strong>Gulp Boilerplate</strong> basta executar o seguinte comando:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g generator-gulp-boilerplate</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Simples e fácil.</p>\n<h2>Usando um generator</h2>\n<p>Crie um diretório para trabalhar e entre nele.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">mkdir</span> my-project\n<span class=\"token builtin class-name\">cd</span> my-project/</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>Basta executar o generator que foi escolhido e instalado por você basta escrever <code class=\"language-text\">yo</code> e em seguida o <em>\"slug\"</em> do generator, assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">yo gulp-boilerplate</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>O generator vai criar todo o <em>\"start\"</em> do projeto pra você, sem reclamar ;)</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 664px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 104.96987951807229%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAACXBIWXMAAAsSAAALEgHS3X78AAABjElEQVQ4y5WU23KkIBCGAZHDaHnAqDMqoyIgViWbff+n23aSzd1MtLGo4uKj//67BdGEi1bIXopu3/mNIZ6gS4FS9fgKhDB6FhhjRijFUUQiODLKBOcsppxSHtMIPyd3mJBU8ITFjDN5kcaYZbFa62VZBq2llISQ5zBCSSLzLIkIiSiN45j+j+gRrzLDxSwiHNDXCp/IxjjGUvCLEByWlJD8KEw4QVc0LPctbM77EMI0jUKIw3CLBqO3NZjFrOs6juPR5F/w3d4Bts7N06SUOiO7RbepC+s6m9k7rx8dOgqTGynb0lkHGNQMe1mWR2F8xapV3rpBDx7yT1PXddDnk/AwhLBu2zYdrPwbvqrFWDBM6yHP8xOGAQw1r35f1lpoVdM0SpW/2/ZjGAyJ995ZC7LneYYrTsgOPjhw3O/J90E/Mup7nxs0uvHv5yeohYLjIz5/w2Kf7d4MH+9/8jw791cRRlCJ6lsDz0Df90dn6yvqt7rIyyRJ0jQtlcqLQlVVlmVVVdV1DVW8eEn+AV22JQjVtVNgAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/d3b516c403727a3ec5ab9a8be68aaeaa/bc904/yeoman-generator-gulp-boilerplate.webp 250w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/4be29/yeoman-generator-gulp-boilerplate.webp 500w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/884cf/yeoman-generator-gulp-boilerplate.webp 664w\"\n          sizes=\"(max-width: 664px) 100vw, 664px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/d3b516c403727a3ec5ab9a8be68aaeaa/43fa5/yeoman-generator-gulp-boilerplate.png 250w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/c6e3d/yeoman-generator-gulp-boilerplate.png 500w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/71592/yeoman-generator-gulp-boilerplate.png 664w\"\n          sizes=\"(max-width: 664px) 100vw, 664px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/d3b516c403727a3ec5ab9a8be68aaeaa/71592/yeoman-generator-gulp-boilerplate.png\"\n          alt=\"Yeoman Generator Gulp Boilerplate\"\n          title=\"Yeoman Generator Gulp Boilerplate\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Yeoman Generator Gulp Boilerplate</figcaption>\n  </figure></p>\n<h2>Raio-x do Gulp Boilerplate</h2>\n<blockquote>\n<p>\"Mas afinal o que tem de especial nesse tal Gulp Boilerplate pra me fazer instalar e usar ele?\"</p>\n</blockquote>\n<p>Calma jovem, vou listar abaixo todos os pacotes e as tasks do Gulp Boilerplate pra você não ficar ai todo curioso:</p>\n<h4>Pacotes gulp</h4>\n<ul>\n<li><a href=\"http://browsersync.io/\">browser-sync</a></li>\n<li><a href=\"https://npmjs.com/package/gulp\">gulp</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-autoprefixer\">gulp-autoprefixer</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-combine-media-queries\">gulp-combine-media-queries</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-compass\">gulp-compass</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-imagemin\">gulp-imagemin</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-include\">gulp-include</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-jade\">gulp-jade</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-jshint\">gulp-jshint</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-load-plugins\">gulp-load-plugins</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-minify-css\">gulp-minify-css</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-plumber\">gulp-plumber</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-rename\">gulp-rename</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-size\">gulp-size</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-uglify\">gulp-uglify</a></li>\n<li><a href=\"https://npmjs.com/package/imagemin-pngquant\">imagemin-pngquant</a></li>\n<li><a href=\"https://npmjs.com/package/jade\">jade</a></li>\n<li><a href=\"https://npmjs.com/package/require-dir\">require-dir</a></li>\n<li><a href=\"https://npmjs.com/package/run-sequence\">run-sequence</a></li>\n</ul>\n<h4>Tasks</h4>\n<ul>\n<li><code class=\"language-text\">gulp default</code> ou apenas <code class=\"language-text\">gulp</code>: executa a task <code class=\"language-text\">gulp serve</code></li>\n<li><code class=\"language-text\">gulp serve</code>: executa o <strong>watch</strong> do projeto para os arquivos de <code class=\"language-text\">.jade</code>, <code class=\"language-text\">.sass</code> e <code class=\"language-text\">.js</code> e executa também um servidor usando o <code class=\"language-text\">browser-sync</code> e toda a vez que um arquivo HTML, CSS ou JS é alterado ele dá o <em>reload</em> nos navegadores.</li>\n<li><code class=\"language-text\">gulp html</code>: usando os pacotes <a href=\"https://www.npmjs.com/package/jade\">jade</a> e <a href=\"https://www.npmjs.com/package/gulp-jade\">gulp-jade</a> essa tarefa processa arquivos <a href=\"http://jade-lang.com/\">.jade</a></li>\n<li><code class=\"language-text\">gulp sass</code>: tarefa para executar o pré-processador <a href=\"http://sass-lang.com/\">SASS</a>, aqui usamos o pacote <a href=\"https://www.npmjs.com/package/gulp-compass\">gulp-compass</a>.</li>\n<li><code class=\"language-text\">gulp lint</code>: aqui executamos o <code class=\"language-text\">lint</code> para aquivos que estão em <code class=\"language-text\">js/components/</code> que são os arquinos js de produção.</li>\n<li><code class=\"language-text\">gulp js</code>: essa tarefa usa o pacote <a href=\"https://www.npmjs.com/package/gulp-include\">gulp-include</a> para incluir arquivos JS como é feito em <strong>SASS</strong> e emseguida minificar e salvar em dois aquivos <code class=\"language-text\">FILE.js</code> e <code class=\"language-text\">FILE.min.js</code>.</li>\n<li><code class=\"language-text\">gulp images</code>: usando <a href=\"https://www.npmjs.com/package/gulp-imagemin\">gulp-imagemin</a> e <a href=\"https://www.npmjs.com/package/imagemin-pngquant\">imagemin-pngquant</a> reduzimos o tamanho de todas as imagens para produção.</li>\n<li><code class=\"language-text\">gulp fonts</code>: apenas copiamos do diretório <code class=\"language-text\">/src/fonts/</code> para <code class=\"language-text\">dist/assets/fonts/</code></li>\n<li><code class=\"language-text\">gulp build</code>: faz o <strong>build</strong> do projeto executando as tasks <code class=\"language-text\">gulp html</code>, <code class=\"language-text\">gulp sass</code>, <code class=\"language-text\">gulp js</code>, <code class=\"language-text\">gulp images</code> e <code class=\"language-text\">gulp fonts</code></li>\n</ul>\n<p>Bem, basicamente essa é a forma que eu trabalho com gulp, se você gostou da um like e um fork lá do repositório do projeto e comenta ai em baixo.</p>\n<p>Abraço.</p>\n<p>/end</p>","excerpt":"Eu criei um repositório no Github onde mantenho atualizado com um boilerplate para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar…","timeToRead":4,"frontmatter":{"category":["gulp"],"date":"há 11 anos","datePublished":"2015-09-27T00:00:00.000Z","description":"Eu criei um repositório no Github onde mantenho atualizado com um boilerplate para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar.","path":"/yeoman-generator-gulp-boilerplate","tags":["gulp","generator","yeoman"],"title":"Yeoman Generator Gulp Boilerplate","image":{"publicURL":"/static/yeoman-5ff3a946146c6cb519048cd74d3f18aa.jpg","name":"yeoman"}},"fields":{"readingTime":{"words":625}}}},"pageContext":{}}}