{"id":229865,"date":"2022-11-15T13:11:00","date_gmt":"2022-11-15T10:11:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229865"},"modified":"2022-11-09T16:43:40","modified_gmt":"2022-11-09T13:43:40","slug":"quelques-forfaits-gulp-pour-les-debutants","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/quelques-forfaits-gulp-pour-les-debutants\/","title":{"rendered":"Quelques forfaits Gulp pour les d\u00e9butants"},"content":{"rendered":"\n<p>Les logiciels comme <a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gulp<\/a> et d&rsquo;autres utilitaires ne sont pas nouveaux. Pour ceux qui ne les ont jamais utilis\u00e9s auparavant, cela peut \u00eatre un peu intimidant de commencer (mais cela ne devrait vraiment pas l&rsquo;\u00eatre).<\/p>\n<p>En comparaison avec des outils comme <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\">j&rsquo;aime et recommande toujours<\/a>, selon le projet), ils ont un peu plus de frais g\u00e9n\u00e9raux pour les configurer, les configurer et les pr\u00e9parer.<\/p>\n<p>Mais une fois que vous avez tout configur\u00e9, cela peut \u00eatre tr\u00e8s utile avec une \u00e9quipe distribu\u00e9e quel que soit le syst\u00e8me d&rsquo;exploitation, et cela peut l&rsquo;aider \u00e0 rendre votre processus de construction un peu plus robuste.<\/p>\n<p>Ce n&rsquo;est pourtant pas le but du post. Au lieu de cela, voici une liste de quelques packages pour les d\u00e9butants.<\/p>\n<p>Pensez-y de cette fa\u00e7on\u00a0: si vous cherchez des moyens de travailler avec <a href=\"http:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a>, JavaScript et l&rsquo;optimisation des images, ce sont de bonnes biblioth\u00e8ques.<\/p>\n<h2>Forfaits Gulp pour les d\u00e9butants<\/h2>\n<p>Avant de sauter dans chacun des packages suivants, je tiens \u00e0 noter qu&rsquo;il est important de lire chacune des pages li\u00e9es. La documentation aide \u00e0 parcourir les options propos\u00e9es par les biblioth\u00e8ques et que le code que j&rsquo;ai fourni n&rsquo;affiche pas.<\/p>\n<p>Autrement dit, ne vous contentez pas de copier et coller ce que j&rsquo;ai fourni. Utilisez-le comme point de d\u00e9part, mais lisez \u00e9galement la documentation. Vous ne trouverez peut-\u00eatre rien de nouveau.<\/p>\n<p>L\u00e0 encore, vous constaterez peut-\u00eatre qu&rsquo;il existe des options pour peaufiner votre projet particulier.<\/p>\n<h3>1 Sass<\/h3>\n<p>Vous pouvez choisir de travailler avec <a href=\"http:\/\/lesscss.org\/#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Less<\/a> (je ne suis ni ici ni l\u00e0-bas, vraiment) mais j&rsquo;ai tendance \u00e0 favoriser Sass. Ainsi, j&rsquo;utilise une biblioth\u00e8que, <a href=\"https:\/\/www.npmjs.com\/package\/gulp-sass\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-sass<\/a>, sp\u00e9cifiquement pour compiler des fichiers 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=\"Quelques forfaits Gulp pour les d\u00e9butants\" ><\/a><\/p>\n<p>J&rsquo;ai normalement un\u00a0 r\u00e9pertoire d&rsquo; <strong>actifs<\/strong> et dans ce r\u00e9pertoire se trouvent des sous-r\u00e9pertoires pour les <strong>images<\/strong>, <strong>les styles<\/strong> et les <strong>scripts<\/strong>.<\/p>\n<p>Dans le\u00a0 r\u00e9pertoire <strong>styles<\/strong>, j&rsquo;ai deux sous-r\u00e9pertoires\u00a0:<\/p>\n<ol>\n<li><strong>scss<\/strong><\/li>\n<li><strong>CSS<\/strong><\/li>\n<\/ol>\n<p>Je conserve tous mes fichiers SCSS dans le r\u00e9pertoire respectif, puis j&rsquo;utilise gulp-sass pour <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-00-gulp-sass-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sortir les fichiers compil\u00e9s 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>\u00c0 partir de l\u00e0, je mets les fichiers CSS en file d&rsquo;attente \u00e0 l&rsquo;aide <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de la fonction API WordPress n\u00e9cessaire<\/a>.<\/p>\n<h3>2 Minification JavaScript<\/h3>\n<p>\u00c0 ce stade, les avantages de la minification des fichiers JavaScript ont \u00e9t\u00e9 prouv\u00e9s \u00e0 maintes reprises, je ne vais donc pas m&rsquo;\u00e9tendre davantage sur ce point.<\/p>\n<p>J&rsquo;ai essay\u00e9 certains packages en ce qui concerne le travail avec la minification JavaScript et <a href=\"https:\/\/www.npmjs.com\/package\/gulp-uglify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-uglify<\/a> est celui que j&rsquo;aime le plus utiliser.<\/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=\"Quelques forfaits Gulp pour les d\u00e9butants\" ><\/a><\/p>\n<p>Rappelez-vous de la section pr\u00e9c\u00e9dente que j&rsquo;ai mon\u00a0 r\u00e9pertoire <strong>assets<\/strong> et qu&rsquo;il contient mon sous-r\u00e9pertoire <strong>scripts .<\/strong> Ce r\u00e9pertoire contient un seul sous-r\u00e9pertoire qui lui est propre: <strong>dev.<\/strong><\/p>\n<p>Je prends les fichiers JavaScript qui se trouvent dans <strong>dev<\/strong> et je les <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-01-gulp-uglify-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">affiche<\/a> \u00e0 la racine du r\u00e9pertoire des <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>\u00c0 partir de l\u00e0, comme je le fais ci-dessus, je les mets en file d&rsquo;attente en utilisant la m\u00eame <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">fonction d&rsquo;API WordPress<\/a>.<\/p>\n<h3>3 Optimisation des images<\/h3>\n<p>Enfin, une chose qui peut faire beaucoup pour s&rsquo;assurer que votre ou vos pages se chargent rapidement est de s&rsquo;assurer que vos \u00e9l\u00e9ments d&rsquo;image sont optimis\u00e9s.<\/p>\n<p>Bien s\u00fbr, il existe des outils que vous pouvez utiliser manuellement pour ce faire, mais si vous ajoutez, modifiez ou modifiez fr\u00e9quemment des \u00e9l\u00e9ments d&rsquo;image et que vous souhaitez automatiser le processus de construction d&rsquo;optimisation, je vous recommande d&rsquo;utiliser <a href=\"https:\/\/www.npmjs.com\/package\/gulp-imagemin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-imagemin<\/a>.<\/p>\n<p>[image]<\/p>\n<p>Il existe certaines d\u00e9pendances pour cette biblioth\u00e8que particuli\u00e8re, vous devrez donc vous assurer qu&rsquo;elles sont \u00e9galement incluses. Ceux-ci inclus<\/p>\n<ul>\n<li>picturein-gifsicle,<\/li>\n<li>image en jpegtran,<\/li>\n<li>imagein-optipng,<\/li>\n<li>image en svgo.<\/li>\n<\/ul>\n<p>Ceux-ci peuvent \u00eatre ajout\u00e9s manuellement \u00e0 vos fichiers de configuration, install\u00e9s via la ligne de commande ou autrement. Quoi qu&rsquo;il en soit, assurez-vous de les avoir avant d&rsquo;essayer d&rsquo; <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-02-gulp-image-optimization-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">optimiser vos images<\/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>Notez d&rsquo;apr\u00e8s le code ci-dessus (et ce que j&rsquo;ai mentionn\u00e9 pr\u00e9c\u00e9demment) que mon\u00a0 r\u00e9pertoire d&rsquo; <strong>images<\/strong> se trouve dans <strong>assets<\/strong> donc lorsque j&rsquo;ex\u00e9cute la t\u00e2che comme mentionn\u00e9 ci-dessus, il optimisera tous les types d&rsquo;images pris en charge \u00e0 cet emplacement.<\/p>\n<h2>Fichiers de package, fichiers Gulp et tout \u00e7a\u00a0?<\/h2>\n<p>Si vous d\u00e9butez avec Gulp, <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node<\/a> ou d&rsquo;autres syst\u00e8mes de construction, il y a un peu plus \u00e0 couvrir concernant l&rsquo;installation et la configuration de Node et Gulp.<\/p>\n<p>J&rsquo;ai choisi de sauter cela pour l&rsquo;instant car il y a beaucoup de documentation \u00e0 ce sujet, mais je vais peut-\u00eatre jeter un coup d&rsquo;\u0153il \u00e0 ce que nous utilisons chaque fois que nous int\u00e9grons cela dans nos projets.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici quelques packages Gulp pour les d\u00e9butants, en particulier si vous recherchez des moyens simples de travailler avec Sass, JavaScript et l&rsquo;optimisation des images.<\/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":[893,728,801,841],"tags":[1167],"class_list":["post-229865","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-javascript-3","category-php-3","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=229865"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229865\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/224999"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}