{"id":229565,"date":"2022-11-15T12:59:00","date_gmt":"2022-11-15T09:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229565"},"modified":"2022-11-09T08:29:35","modified_gmt":"2022-11-09T05:29:35","slug":"algunos-paquetes-de-gulp-para-principiantes","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/algunos-paquetes-de-gulp-para-principiantes\/","title":{"rendered":"Algunos paquetes de Gulp para principiantes"},"content":{"rendered":"\n<p>El software como <a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gulp<\/a> y otras utilidades no son nuevos. Para aquellos que no los han usado antes, puede ser un poco desalentador comenzar (pero en realidad no deber\u00eda ser as\u00ed).<\/p>\n<p>En comparaci\u00f3n con herramientas como <a href=\"https:\/\/codekitapp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CodeKit<\/a> (que <a href=\"https:\/\/tommcfarlin.com\/codekit-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">todav\u00eda me gusta y recomiendo<\/a>, seg\u00fan el proyecto), tienen un poco m\u00e1s de gastos generales con respecto a configurarlos y prepararlos para funcionar.<\/p>\n<p>Pero una vez que lo haya configurado todo, puede ser realmente \u00fatil con un equipo distribuido independientemente del sistema operativo, y puede ayudar a que su proceso de compilaci\u00f3n sea un poco m\u00e1s s\u00f3lido.<\/p>\n<p>Sin embargo, ese no es el prop\u00f3sito de la publicaci\u00f3n. En cambio, aqu\u00ed hay una lista de algunos paquetes para empezar.<\/p>\n<p>Pi\u00e9nselo de esta manera: si est\u00e1 buscando formas de trabajar con <a href=\"http:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a>, JavaScript y optimizaci\u00f3n de im\u00e1genes, estas son buenas bibliotecas.<\/p>\n<h2>Paquetes Gulp para principiantes<\/h2>\n<p>Antes de saltar a cada uno de los siguientes paquetes, quiero se\u00f1alar que es importante leer cada una de las p\u00e1ginas vinculadas. La documentaci\u00f3n ayuda a recorrer las opciones que ofrecen las bibliotecas que el c\u00f3digo que proporcion\u00e9 no muestra.<\/p>\n<p>Es decir, no copie y pegue simplemente lo que he proporcionado. \u00daselo como punto de partida, pero tambi\u00e9n lea la documentaci\u00f3n. Puede que no encuentres nada nuevo.<\/p>\n<p>Por otra parte, es posible que encuentre que hay opciones para ajustar su proyecto en particular.<\/p>\n<h3>1 descaro<\/h3>\n<p>Puedes optar por trabajar con <a href=\"http:\/\/lesscss.org\/#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Less<\/a> (no estoy ni aqu\u00ed ni all\u00e1, en realidad), pero tiendo a favorecer a Sass. Por lo tanto, uso una biblioteca, <a href=\"https:\/\/www.npmjs.com\/package\/gulp-sass\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-sass<\/a>, espec\u00edficamente para compilar archivos Sass en 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=\"Algunos paquetes de Gulp para principiantes\" ><\/a><\/p>\n<p>Normalmente tengo un\u00a0 directorio de <strong>activos<\/strong> y dentro de ese directorio hay algunos subdirectorios para <strong>im\u00e1genes<\/strong>, <strong>estilos<\/strong> y <strong>scripts<\/strong>.<\/p>\n<p>Dentro del\u00a0 directorio de <strong>estilos<\/strong>, tengo dos subdirectorios:<\/p>\n<ol>\n<li><strong>scs<\/strong><\/li>\n<li><strong>CSS<\/strong><\/li>\n<\/ol>\n<p>Guardo todos mis archivos SCSS en el directorio respectivo y luego uso gulp-sass para <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-00-gulp-sass-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">generar los archivos compilados en 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 de ah\u00ed, pongo en cola los archivos CSS utilizando <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la funci\u00f3n necesaria de la API de WordPress<\/a>.<\/p>\n<h3>2 Minificaci\u00f3n de JavaScript<\/h3>\n<p>En este punto, los beneficios de minimizar los archivos JavaScript se han demostrado una y otra vez, por lo que no voy a profundizar m\u00e1s en este punto.<\/p>\n<p>Hay algunos paquetes que he probado en relaci\u00f3n con el trabajo con la minimizaci\u00f3n de JavaScript y <a href=\"https:\/\/www.npmjs.com\/package\/gulp-uglify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-uglify<\/a> es el que m\u00e1s me gusta 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=\"Algunos paquetes de Gulp para principiantes\" ><\/a><\/p>\n<p>Recuerde de la secci\u00f3n anterior que tengo mi\u00a0 directorio de <strong>activos<\/strong> y dentro de \u00e9l tengo mi subdirectorio de <strong>scripts .<\/strong> Ese directorio contiene un solo subdirectorio propio: <strong>dev.<\/strong><\/p>\n<p>Tomo los archivos JavaScript que se encuentran en <strong>dev<\/strong> y <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-01-gulp-uglify-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">los env\u00edo<\/a> a la ra\u00edz del\u00a0 directorio 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 de ah\u00ed, como hice anteriormente, los pongo en cola usando la misma <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">funci\u00f3n API de WordPress<\/a>.<\/p>\n<h3>3 Optimizaci\u00f3n de imagen<\/h3>\n<p>Finalmente, una cosa que puede ser de gran ayuda para asegurarse de que su (s) p\u00e1gina (s) se cargue (n) r\u00e1pidamente es asegurarse de que sus activos de imagen est\u00e9n optimizados.<\/p>\n<p>Claro, hay algunas herramientas que puede usar manualmente para hacer esto, pero si se encuentra agregando, cambiando o modificando activos de imagen con frecuencia y desea automatizar el proceso de compilaci\u00f3n de optimizaci\u00f3n, le recomiendo 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>[imagen]<\/p>\n<p>Hay algunas dependencias para esta biblioteca en particular, por lo que deber\u00e1 asegurarse de que tambi\u00e9n est\u00e9n incluidas. \u00c9stos incluyen<\/p>\n<ul>\n<li>imagen-gifsicle,<\/li>\n<li>imagein-jpegtran,<\/li>\n<li>imagen en la opci\u00f3n,<\/li>\n<li>imagein-svgo.<\/li>\n<\/ul>\n<p>Estos pueden agregarse manualmente a sus archivos de configuraci\u00f3n, instalarse a trav\u00e9s de la l\u00ednea de comando o de otra manera. Independientemente, aseg\u00farese de tenerlos antes de intentar <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-02-gulp-image-optimization-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">optimizar sus im\u00e1genes<\/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>Tenga en cuenta del c\u00f3digo anterior (y lo que mencion\u00e9 antes) que mi\u00a0 directorio de <strong>im\u00e1genes<\/strong> est\u00e1 ubicado en <strong>activos,<\/strong> por lo que cuando ejecute la tarea como se mencion\u00f3 anteriormente, optimizar\u00e1 cualquiera de los tipos de im\u00e1genes admitidos en esa ubicaci\u00f3n.<\/p>\n<h2>\u00bfArchivos de paquetes, archivos Gulp y todo eso?<\/h2>\n<p>Si es nuevo en Gulp, <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node<\/a> u otros sistemas de compilaci\u00f3n, entonces hay un poco m\u00e1s que cubrir con respecto a la instalaci\u00f3n y configuraci\u00f3n de Node y Gulp.<\/p>\n<p>He optado por omitir eso por ahora, ya que hay mucha documentaci\u00f3n al respecto, pero tal vez echar\u00e9 un vistazo a lo que usamos cada vez que lo incorporamos a nuestros proyectos.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aqu\u00ed hay algunos paquetes de Gulp para principiantes espec\u00edficamente si est\u00e1 buscando formas f\u00e1ciles de trabajar con Sass, JavaScript y optimizaci\u00f3n de im\u00e1genes.<\/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":[892,727,800,840],"tags":[1172],"class_list":["post-229565","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-javascript-2","category-php-2","category-tutoriales","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=229565"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229565\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/224999"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}