{"id":229574,"date":"2022-11-19T18:05:00","date_gmt":"2022-11-19T15:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229574"},"modified":"2022-11-19T18:05:47","modified_gmt":"2022-11-19T15:05:47","slug":"komma-igaang-med-gulp-startpaket","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/komma-igaang-med-gulp-startpaket\/","title":{"rendered":"Komma ig\u00e5ng med Gulp-startpaket"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/vad-aer-skillnaden-mellan-codekit-och-composer\/\" title=\"Att prata om CodeKit\">Att prata om CodeKit<\/a> och f\u00f6rdelarna det erbjuder f\u00f6r front-end-utvecklare har ocks\u00e5 kommit precis efter ett inl\u00e4gg och f\u00f6rdelarna som <a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">n\u00e5got som Gulp<\/a> erbjuder ocks\u00e5.<\/p>\n<p>Ett inl\u00e4gg om skillnaden mellan de tv\u00e5, varf\u00f6r du kanske vill ha det ena framf\u00f6r det andra, och f\u00f6rdelarna eller nackdelarna med b\u00e5da kan vara dess inl\u00e4gg.<\/p>\n<p>Men f\u00f6r detta skulle jag vilja ta <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/naagra-gulp-paket-foer-nyboerjare\/\" title=\"startpaketen\">startpaketen<\/a> jag skrev om ang\u00e5ende Gulp och ge ett enkelt exempel p\u00e5 en start Gulp-fil och hur man anv\u00e4nder den i dina WordPress-projekt.<\/p>\n<h2>Komma ig\u00e5ng med Gulp<\/h2>\n<p>F\u00f6r det f\u00f6rsta \u00e4r jag ett fan av Homebrew, s\u00e5 n\u00e4r det kommer till att hantera paket som inte \u00e4r en del av Mac App Store anv\u00e4nder jag det. Detta g\u00f6r det mycket l\u00e4ttare att installera paket, uppdatera dem och avinstallera dem.<\/p>\n<p>Om du inte har l\u00e4st <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/homebrew-node-och-gulp-foer-wordpress-utveckling\/\" title=\"min guide om Homebrew\">min guide om Homebrew<\/a>, v\u00e4nligen g\u00f6r det eftersom resten av det h\u00e4r inl\u00e4gget f\u00f6ruts\u00e4tter att du har det installerat.<\/p>\n<h3>1 Installera Gulp<\/h3>\n<p>Om du har Homebrew installerat, se till att allt ser bra ut och \u00e4r uppdaterat, jag har en hel guide f\u00f6r att st\u00e4lla in Gulp p\u00e5 din lokala maskin.<\/p>\n<\/p>\n<p>S\u00e5 om du inte redan har den inst\u00e4llningen, kolla in det <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/anvaenda-homebrew-foer-att-installera-node-foer-att-installera-gulp\/\" title=\"h\u00e4r inl\u00e4gget\">h\u00e4r inl\u00e4gget<\/a> f\u00f6r hur du g\u00f6r det.<\/p>\n<h3>2 Skriv din Gulp-konfigurationsfil, del 1<\/h3>\n<p>F\u00f6r att initiera en Gulp-konfigurationsfil, skriv <a href=\"https:\/\/gist.github.com\/tommcfarlin\/3d930006082bedb567bf6f9344204ec7#file-00-gulpfile-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">in f\u00f6ljande kommando<\/a> i ditt projekts rotkatalog i din terminal:<\/p>\n<p>L\u00e4tt, \u00e4r det inte?<\/p>\n<p>Detta kommer att skapa en tom <strong>gulpfile.js<\/strong> i ditt projekts rotkatalog. D\u00e4refter \u00e4r det dags att redigera filen.<\/p>\n<p>F\u00f6r det h\u00e4r inl\u00e4gget kommer jag att anv\u00e4nda fyra paket som jag tidigare har beskrivit:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/gulp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">klunk<\/a><\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/gulp-sass\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-sass<\/a><\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/gulp-imagemin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-bild<\/a><\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/gulp-uglify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-uglify<\/a><\/li>\n<\/ul>\n<p>Var och en av dessa \u00e4r uppgifter som ansvarar f\u00f6r att transpilera Sass, optimera bilder och f\u00f6rminska JavaScript.<\/p>\n<blockquote>\n<p>Uppgifter som du vill k\u00f6ra fr\u00e5n kommandoraden b\u00f6r inte ha mellanslag i dem.<\/p>\n<\/blockquote>\n<p>F\u00f6r att st\u00e4lla in de grundl\u00e4ggande <a href=\"https:\/\/github.com\/gulpjs\/gulp\/blob\/master\/docs\/API.md#gulptaskname--deps--fn\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uppgifterna<\/a> s\u00e5 att du kan k\u00f6ra dem fr\u00e5n kommandoraden, m\u00e5ste du g\u00f6ra f\u00f6ljande:<\/p>\n<h4><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3d930006082bedb567bf6f9344204ec7#file-01-gulp-task-sass-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a><\/h4>\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<h4><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3d930006082bedb567bf6f9344204ec7#file-02-gulp-task-js-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript<\/a><\/h4>\n<pre><code>gulp.task('js', function() {\n  return gulp.src('assets\/scripts\/dev\/*.js')\n    .pipe(uglify())\n    .pipe(gulp.dest('assets\/scripts'));\n});<\/code><\/pre>\n<h4><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3d930006082bedb567bf6f9344204ec7#file-03-gulp-task-images-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bilder<\/a><\/h4>\n<pre><code>gulp.task('images', function() {\n  return gulp.src('assets\/images\/*')\n    .pipe(imagemin())\n    .pipe(gulp.dest('assets\/images'))\n});<\/code><\/pre>\n<h4>K\u00f6r dem individuellt<\/h4>\n<p>Att k\u00f6ra dessa uppgifter individuellt kr\u00e4ver att du skriver in f\u00f6ljande i konsolen varje g\u00e5ng du vill, till exempel, transpilera dina Sass-filer och f\u00f6rminska dina JavaScript-filer:<\/p>\n<p>Men det h\u00e4r blir snabbt gammalt. Dessutom \u00e4r det mindre effektivt, s\u00e4rskilt n\u00e4r du kan st\u00e4lla in en <a href=\"https:\/\/github.com\/gulpjs\/gulp\/blob\/master\/docs\/API.md#gulpwatchglob--opts-tasks-or-gulpwatchglob--opts-cb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">klocka<\/a> f\u00f6r att automatiskt k\u00f6ra dina uppgifter n\u00e4r du sparar en fil.<\/p>\n<h3>2 Skriv din Gulp-konfigurationsfil, del 2<\/h3>\n<p>Att st\u00e4lla in en <a href=\"https:\/\/github.com\/gulpjs\/gulp\/blob\/master\/docs\/API.md#gulpwatchglob--opts-tasks-or-gulpwatchglob--opts-cb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">klocka<\/a> \u00e4r f\u00f6rmodligen det b\u00e4sta du kan g\u00f6ra n\u00e4r det g\u00e4ller att spara tid med Gulp.<\/p>\n<blockquote>\n<p>Titta p\u00e5 filer och g\u00f6r n\u00e5got n\u00e4r en fil \u00e4ndras. Detta returnerar alltid en EventEmitter som avger <code>change<\/code>\u00a0h\u00e4ndelser.<\/p>\n<\/blockquote>\n<p>Det \u00e4r enkelt att st\u00e4lla in en klocka. Det \u00e4r ungef\u00e4r som en uppgift (i sj\u00e4lva verket kr\u00e4ver det en uppgift) men det har ocks\u00e5 speciella argument. F\u00f6r att l\u00e4gga till en bevakningsuppgift som hanterar Sass, JavaScript och bilder, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/3d930006082bedb567bf6f9344204ec7#file-05-gulp-watch-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">st\u00e4ll in f\u00f6ljande<\/a> i din gulpfile.js:<\/p>\n<pre><code>gulp.task('watch', function() {\n    gulp.watch('assets\/styles\/scss\/*.scss', gulp.series('sass'));\n    gulp.watch('assets\/scripts\/dev\/*.js', gulp.series('js'));\n    gulp.watch('assets\/images\/*', gulp.series('images'));\n});<\/code><\/pre>\n<p>Sedan \u00e4r det bara att k\u00f6ra <a href=\"https:\/\/gist.github.com\/tommcfarlin\/3d930006082bedb567bf6f9344204ec7#file-06-gulp-watch-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uppgiften<\/a> :<\/p>\n<p>H\u00e4rifr\u00e5n, varje g\u00e5ng du sparar en Sass-fil, en JavaScript-fil eller g\u00f6r en \u00e4ndring i en bild, kommer uppgiften att starta automatiskt och utf\u00f6ra arbetet med den definierade uppgiften. Observera att detta kommer att k\u00f6ras oavbrutet i sin tr\u00e5d, s\u00e5 du m\u00e5ste \u00f6ppna en ny terminalflik eller ett nytt f\u00f6nster om du beh\u00f6ver g\u00f6ra n\u00e5got ytterligare arbete.<\/p>\n<h2>En anteckning om versioner<\/h2>\n<p>I tidigare versioner av Gulp skulle det andra argumentet f\u00f6r klockfunktionen acceptera en array; den senaste versionen kr\u00e4ver dock en verklig funktion (vilket du kan se ovan genom att jag har deklarerat <strong>serie<\/strong> ).<\/p>\n<p>Det korta med det \u00e4r att Gulp 4 till\u00e5ter sekventiell exekvering, som g\u00f6rs via <strong>serier<\/strong>, och parallell exekvering (som kan anv\u00e4nda <strong>parallellfunktionen<\/strong> ). De ligger utanf\u00f6r omfattningen av det h\u00e4r inl\u00e4gget eftersom detta enbart \u00e4r t\u00e4nkt att hj\u00e4lpa dig att komma ig\u00e5ng.<\/p>\n<p>N\u00e4r du \u00e4r klar b\u00f6r du ha mycket mer automatisering i din byggprocess.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Att komma ig\u00e5ng med Gulp startpaket \u00e4r en uppf\u00f6ljning av ett tidigare inl\u00e4gg som syftar till att hj\u00e4lpa till att automatisera vanliga uppgifter som vi anv\u00e4nder.<\/p>\n","protected":false},"author":1,"featured_media":165162,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,755,922,724,868],"tags":[1173,1173],"class_list":["post-229574","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-oeppen-kaella","category-oevrig","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=229574"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229574\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/165162"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}