{"id":229197,"date":"2022-11-15T13:33:00","date_gmt":"2022-11-15T10:33:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229197"},"modified":"2022-11-09T05:55:31","modified_gmt":"2022-11-09T02:55:31","slug":"naagra-gulp-paket-foer-nyboerjare","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/naagra-gulp-paket-foer-nyboerjare\/","title":{"rendered":"N\u00e5gra Gulp-paket f\u00f6r nyb\u00f6rjare"},"content":{"rendered":"\n<p>Programvara som <a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gulp<\/a> och andra verktyg \u00e4r inte nya. F\u00f6r den som inte har anv\u00e4nt dem tidigare kan det vara lite jobbigt att komma ig\u00e5ng (men det borde det verkligen inte vara).<\/p>\n<p>I j\u00e4mf\u00f6relse med verktyg som <a href=\"https:\/\/codekitapp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CodeKit<\/a> (som <a href=\"https:\/\/tommcfarlin.com\/codekit-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jag fortfarande gillar och rekommenderar<\/a>, beroende p\u00e5 projektet), har de lite mer omkostnader n\u00e4r det g\u00e4ller att f\u00e5 dem konfigurerade, konfigurerade och redo att g\u00e5.<\/p>\n<p>Men n\u00e4r du v\u00e4l har st\u00e4llt in allt, kan det vara riktigt anv\u00e4ndbart med ett distribuerat team oavsett operativsystem, och det kan hj\u00e4lpa det att g\u00f6ra din byggprocess lite mer robust.<\/p>\n<p>Det \u00e4r dock inte syftet med inl\u00e4gget. H\u00e4r \u00e4r ist\u00e4llet en lista med n\u00e5gra paket till att b\u00f6rja med.<\/p>\n<p>T\u00e4nk p\u00e5 dem s\u00e5 h\u00e4r: Om du letar efter s\u00e4tt att arbeta med <a href=\"http:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a>, JavaScript och bildoptimering \u00e4r dessa bra bibliotek.<\/p>\n<h2>Gulp-paket f\u00f6r nyb\u00f6rjare<\/h2>\n<p>Innan jag hoppar in i vart och ett av f\u00f6ljande paket vill jag notera att det \u00e4r viktigt att l\u00e4sa var och en av de l\u00e4nkade sidorna. Dokumentationen hj\u00e4lper till att g\u00e5 igenom alternativ som biblioteken erbjuder som koden jag har tillhandah\u00e5llit inte visas.<\/p>\n<p>Det vill s\u00e4ga, kopiera och klistra inte bara in det jag har tillhandah\u00e5llit. Anv\u00e4nd det som utg\u00e5ngspunkt, men l\u00e4s ocks\u00e5 igenom dokumentationen. Du kanske inte hittar n\u00e5got nytt.<\/p>\n<p>\u00c5terigen kan du uppt\u00e4cka att det finns alternativ f\u00f6r att justera just ditt projekt.<\/p>\n<h3>1 Sass<\/h3>\n<p>Du kan v\u00e4lja att arbeta med <a href=\"http:\/\/lesscss.org\/#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Less<\/a> (jag \u00e4r varken h\u00e4r eller d\u00e4r, egentligen) men jag tenderar att favorisera Sass. S\u00e5ledes anv\u00e4nder jag ett bibliotek, <a href=\"https:\/\/www.npmjs.com\/package\/gulp-sass\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-sass<\/a>, specifikt f\u00f6r att kompilera Sass-filer till 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=\"N\u00e5gra Gulp-paket f\u00f6r nyb\u00f6rjare\" ><\/a><\/p>\n<p>Jag har normalt en <strong>tillg\u00e5ngskatalog<\/strong> och i den katalogen finns n\u00e5gra underkataloger f\u00f6r <strong>bilder<\/strong>, <strong>stilar<\/strong> och <strong>skript<\/strong>.<\/p>\n<p>Inom <strong>stilkatalogen<\/strong> har jag tv\u00e5 underkataloger:<\/p>\n<ol>\n<li><strong>scss<\/strong><\/li>\n<li><strong>css<\/strong><\/li>\n<\/ol>\n<p>Jag beh\u00e5ller alla mina SCSS-filer i respektive katalog, och sedan anv\u00e4nder jag gulp-sass f\u00f6r att <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-00-gulp-sass-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">mata ut de kompilerade filerna till 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>D\u00e4rifr\u00e5n st\u00e4ller jag CSS-filerna i k\u00f6 med <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">den n\u00f6dv\u00e4ndiga WordPress API-funktionen<\/a>.<\/p>\n<h3>2 JavaScript-minifiering<\/h3>\n<p>Vid det h\u00e4r laget har f\u00f6rdelarna med att f\u00f6rminska JavaScript-filer bevisats om och om igen, s\u00e5 jag t\u00e4nker inte utarbeta po\u00e4ngen ytterligare.<\/p>\n<p>Det finns n\u00e5gra paket som jag har provat n\u00e4r det g\u00e4ller att arbeta med JavaScript-minifiering och <a href=\"https:\/\/www.npmjs.com\/package\/gulp-uglify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-uglify<\/a> \u00e4r det som jag tycker jag tycker mest om att anv\u00e4nda.<\/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=\"N\u00e5gra Gulp-paket f\u00f6r nyb\u00f6rjare\" ><\/a><\/p>\n<p>Kom ih\u00e5g fr\u00e5n f\u00f6reg\u00e5ende avsnitt att jag har min <strong>tillg\u00e5ngskatalog<\/strong> och i den har jag min\u00a0 underkatalog f\u00f6r <strong>skript<\/strong>. Den katalogen inneh\u00e5ller en egen underkatalog: <strong>dev.<\/strong><\/p>\n<p>Jag tar JavaScript-filerna som finns i <strong>dev<\/strong> och <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-01-gulp-uglify-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">matar ut dem<\/a> i roten av <strong>skriptkatalogen<\/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>D\u00e4rifr\u00e5n, som jag g\u00f6r ovan, st\u00e4ller jag dem i k\u00f6 med samma <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress API-funktion<\/a>.<\/p>\n<h3>3 Bildoptimering<\/h3>\n<p>Slutligen, en sak som kan r\u00e4cka l\u00e5ngt f\u00f6r att se till att dina sidor laddas snabbt \u00e4r att se till att dina bildtillg\u00e5ngar \u00e4r optimerade.<\/p>\n<p>Visst, det finns n\u00e5gra verktyg du kan anv\u00e4nda manuellt f\u00f6r att g\u00f6ra detta, men om du ofta l\u00e4gger till, \u00e4ndrar eller modifierar bildtillg\u00e5ngar och du vill automatisera byggprocessen f\u00f6r optimering, rekommenderar jag att du anv\u00e4nder <a href=\"https:\/\/www.npmjs.com\/package\/gulp-imagemin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-imagemin<\/a>.<\/p>\n<p>[bild]<\/p>\n<p>Det finns vissa beroenden f\u00f6r just det h\u00e4r biblioteket s\u00e5 du m\u00e5ste se till att de ocks\u00e5 ing\u00e5r. Dessa inkluderar<\/p>\n<ul>\n<li>bild-i-gifsicle,<\/li>\n<li>imagein-jpegtran,<\/li>\n<li>imagein-optipng,<\/li>\n<li>imagein-svgo.<\/li>\n<\/ul>\n<p>Dessa kan l\u00e4ggas till manuellt i dina konfigurationsfiler, installeras via kommandoraden eller p\u00e5 annat s\u00e4tt. Oavsett vilket, se till att du har dem innan du f\u00f6rs\u00f6ker <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-02-gulp-image-optimization-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">optimera dina bilder<\/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>Notera fr\u00e5n koden ovan (och vad jag har n\u00e4mnt tidigare) att min <strong>bildkatalog<\/strong> finns i <strong>tillg\u00e5ngar<\/strong> s\u00e5 n\u00e4r jag k\u00f6r uppgiften som n\u00e4mnts ovan kommer den att optimera n\u00e5gon av de bildtyper som st\u00f6ds p\u00e5 den platsen.<\/p>\n<h2>Paketfiler, gulpfiler och allt det d\u00e4r?<\/h2>\n<p>Om du \u00e4r ny p\u00e5 Gulp, <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node<\/a> eller andra byggsystem, s\u00e5 finns det lite mer att t\u00e4cka n\u00e4r det g\u00e4ller att installera Node och Gulp och st\u00e4lla in dem.<\/p>\n<p>Jag har valt att hoppa \u00f6ver det f\u00f6r nu eftersom det finns mycket dokumentation kring detta, men jag kanske ska ta en titt p\u00e5 vad vi anv\u00e4nder n\u00e4r vi inf\u00f6rlivar detta i v\u00e5ra projekt.<\/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>H\u00e4r \u00e4r n\u00e5gra Gulp-paket till att b\u00f6rja med, speciellt om du letar efter enkla s\u00e4tt att arbeta med Sass, JavaScript och bildoptimering.<\/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":[848,734,901,807],"tags":[1173],"class_list":["post-229197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-javascript-9","category-koda","category-php-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229197","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=229197"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229197\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224999"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}