{"id":229973,"date":"2022-11-15T12:56:00","date_gmt":"2022-11-15T09:56:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229973"},"modified":"2022-11-09T19:32:03","modified_gmt":"2022-11-09T16:32:03","slug":"alguns-pacotes-gulp-para-iniciantes","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/alguns-pacotes-gulp-para-iniciantes\/","title":{"rendered":"Alguns pacotes Gulp para iniciantes"},"content":{"rendered":"\n<p>Softwares como <a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gulp<\/a> e outros utilit\u00e1rios n\u00e3o s\u00e3o novos. Para aqueles que n\u00e3o os usaram antes, pode ser um pouco assustador come\u00e7ar (mas realmente n\u00e3o deveria ser).<\/p>\n<p>Em compara\u00e7\u00e3o com ferramentas como <a href=\"https:\/\/codekitapp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o CodeKit<\/a> (que <a href=\"https:\/\/tommcfarlin.com\/codekit-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ainda gosto e recomendo<\/a>, dependendo do projeto), elas t\u00eam um pouco mais de sobrecarga em rela\u00e7\u00e3o \u00e0 configura\u00e7\u00e3o, configura\u00e7\u00e3o e uso.<\/p>\n<p>Mas uma vez que voc\u00ea tenha tudo configurado, pode ser realmente \u00fatil com uma equipe distribu\u00edda, independentemente do sistema operacional, e pode ajudar a tornar seu processo de compila\u00e7\u00e3o um pouco mais robusto.<\/p>\n<p>Mas n\u00e3o \u00e9 esse o objetivo do post. Em vez disso, aqui est\u00e1 uma lista de alguns pacotes para iniciantes.<\/p>\n<p>Pense nelas desta forma: se voc\u00ea est\u00e1 procurando maneiras de trabalhar com <a href=\"http:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a>, JavaScript e otimiza\u00e7\u00e3o de imagens, estas s\u00e3o boas bibliotecas.<\/p>\n<h2>Pacotes Gulp para Iniciantes<\/h2>\n<p>Antes de entrar em cada um dos pacotes a seguir, quero observar que \u00e9 importante ler cada uma das p\u00e1ginas vinculadas. A documenta\u00e7\u00e3o ajuda a percorrer as op\u00e7\u00f5es que as bibliotecas oferecem que o c\u00f3digo que forneci n\u00e3o mostra.<\/p>\n<p>Ou seja, n\u00e3o basta copiar e colar o que forneci. Use-o como ponto de partida, mas leia a documenta\u00e7\u00e3o tamb\u00e9m. Voc\u00ea pode n\u00e3o encontrar nada de novo.<\/p>\n<p>Ent\u00e3o, novamente, voc\u00ea pode descobrir que existem op\u00e7\u00f5es para ajustar seu projeto espec\u00edfico.<\/p>\n<h3>1 Sass<\/h3>\n<p>Voc\u00ea pode optar por trabalhar com <a href=\"http:\/\/lesscss.org\/#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Less<\/a> (n\u00e3o estou aqui nem l\u00e1, na verdade), mas tendo a favorecer Sass. Assim, eu uso uma biblioteca, <a href=\"https:\/\/www.npmjs.com\/package\/gulp-sass\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-sass<\/a>, especificamente para compilar arquivos Sass em CSS.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165600-61e7845d0fda6.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165600-61e7845d0fda6.png\" alt=\"Alguns pacotes Gulp para iniciantes\" ><\/a><\/p>\n<p>Eu normalmente tenho um\u00a0 diret\u00f3rio de <strong>ativos<\/strong> e dentro desse diret\u00f3rio h\u00e1 alguns subdiret\u00f3rios para <strong>imagens<\/strong>, <strong>estilos<\/strong> e <strong>scripts<\/strong>.<\/p>\n<p>Dentro do\u00a0 diret\u00f3rio de <strong>estilos<\/strong>, tenho dois subdiret\u00f3rios:<\/p>\n<ol>\n<li><strong>scss<\/strong><\/li>\n<li><strong>css<\/strong><\/li>\n<\/ol>\n<p>Eu mantenho todos os meus arquivos SCSS no respectivo diret\u00f3rio e, em seguida, uso gulp-sass para gerar <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-00-gulp-sass-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">os arquivos compilados em CSS<\/a>.<\/p>\n<pre><code>gulp.task('sass', function(){\n  return gulp.src('assets\/styles\/scss\/*.scss')\n    .pipe(sass())\n    .pipe(gulp.dest('assets\/styles\/css'))\n});<\/code><\/pre>\n<p>A partir da\u00ed, enfileiro os arquivos CSS usando <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a fun\u00e7\u00e3o necess\u00e1ria da API do WordPress<\/a>.<\/p>\n<h3>2 Minifica\u00e7\u00e3o de JavaScript<\/h3>\n<p>Neste ponto, os benef\u00edcios de minificar arquivos JavaScript foram comprovados repetidamente, ent\u00e3o n\u00e3o vou me alongar mais nesse ponto.<\/p>\n<p>Existem alguns pacotes que eu tentei no que se refere ao trabalho com minifica\u00e7\u00e3o JavaScript e <a href=\"https:\/\/www.npmjs.com\/package\/gulp-uglify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-uglify<\/a> \u00e9 o que eu acho que mais gosto de usar.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165600-61e7846105cbe.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165600-61e7846105cbe.png\" alt=\"Alguns pacotes Gulp para iniciantes\" ><\/a><\/p>\n<p>Lembre-se da se\u00e7\u00e3o anterior que tenho meu\u00a0 diret\u00f3rio de <strong>ativos<\/strong> e dentro dele tenho meu subdiret\u00f3rio de <strong>scripts .<\/strong> Esse diret\u00f3rio cont\u00e9m um \u00fanico subdiret\u00f3rio pr\u00f3prio: <strong>dev.<\/strong><\/p>\n<p>Eu pego os arquivos JavaScript que est\u00e3o localizados em <strong>dev<\/strong> e <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-01-gulp-uglify-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">os coloco<\/a> na raiz do\u00a0 diret\u00f3rio de <strong>scripts<\/strong>.<\/p>\n<pre><code>gulp.task('minify-js', function() {\n  return gulp.src('assets\/scripts\/dev\/*.js')\n    .pipe(uglify())\n    .pipe(gulp.dest('assets\/scripts'));\n});<\/code><\/pre>\n<p>A partir da\u00ed, como fiz acima, enfileiro-os usando a mesma <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">fun\u00e7\u00e3o da API do WordPress<\/a>.<\/p>\n<h3>3 Otimiza\u00e7\u00e3o de Imagem<\/h3>\n<p>Finalmente, uma coisa que pode ajudar muito a garantir que suas p\u00e1ginas sejam carregadas rapidamente \u00e9 garantir que seus ativos de imagem sejam otimizados.<\/p>\n<p>Claro, existem algumas ferramentas que voc\u00ea pode usar manualmente para fazer isso, mas se voc\u00ea estiver adicionando, alterando ou modificando ativos de imagem com frequ\u00eancia e deseja automatizar o processo de otimiza\u00e7\u00e3o de compila\u00e7\u00e3o, recomendo usar <a href=\"https:\/\/www.npmjs.com\/package\/gulp-imagemin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-imagemin<\/a>.<\/p>\n<p>[imagem]<\/p>\n<p>Existem algumas depend\u00eancias para essa biblioteca espec\u00edfica, portanto, voc\u00ea tamb\u00e9m precisar\u00e1 garantir que elas sejam inclu\u00eddas. Esses incluem<\/p>\n<ul>\n<li>imagemin-gifsicle,<\/li>\n<li>imagemin-jpegtran,<\/li>\n<li>imagemin-optipng,<\/li>\n<li>imagemin-svgo.<\/li>\n<\/ul>\n<p>Eles podem ser adicionados manualmente aos seus arquivos de configura\u00e7\u00e3o, instalados por meio da linha de comando ou de outra forma. Independentemente disso, certifique-se de t\u00ea-los antes de tentar <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-02-gulp-image-optimization-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">otimizar suas imagens<\/a>.<\/p>\n<pre><code>gulp.task('image-optimization', function() {\n    return gulp.src('assets\/images\/*')\n      .pipe(imagemin())\n      .pipe(gulp.dest('assets\/images'))\n  }\n);<\/code><\/pre>\n<p>Observe no c\u00f3digo acima (e no que mencionei antes) que meu\u00a0 diret\u00f3rio de <strong>imagens<\/strong> est\u00e1 localizado em <strong>ativos,<\/strong> portanto, quando eu executar a tarefa conforme mencionado acima, ele otimizar\u00e1 qualquer um dos tipos de imagem suportados nesse local.<\/p>\n<h2>Arquivos de pacote, arquivos Gulp e tudo isso?<\/h2>\n<p>Se voc\u00ea \u00e9 novo no Gulp, <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node<\/a> ou em outros sistemas de compila\u00e7\u00e3o, h\u00e1 um pouco mais sobre como instalar o Node e o Gulp e configur\u00e1-los.<\/p>\n<p>Eu optei por pular isso por enquanto, j\u00e1 que h\u00e1 muita documenta\u00e7\u00e3o sobre isso, mas talvez eu d\u00ea uma olhada no que usamos sempre que estamos incorporando isso em nossos projetos.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aqui est\u00e3o alguns pacotes Gulp para iniciantes especificamente se voc\u00ea estiver procurando maneiras f\u00e1ceis de trabalhar com Sass, JavaScript e otimiza\u00e7\u00e3o de imagem.<\/p>\n","protected":false},"author":1,"featured_media":224999,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,733,806,846],"tags":[1170],"class_list":["post-229973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-javascript-8","category-php-8","category-tutoriais","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=229973"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229973\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224999"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=229973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=229973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=229973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}