{"id":229304,"date":"2022-11-15T13:33:00","date_gmt":"2022-11-15T10:33:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229304"},"modified":"2022-11-09T06:23:56","modified_gmt":"2022-11-09T03:23:56","slug":"pakiety-kilku-lykow-na-poczatek","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/pakiety-kilku-lykow-na-poczatek\/","title":{"rendered":"Pakiety kilku \u0142yk\u00f3w na pocz\u0105tek"},"content":{"rendered":"\n<p>Oprogramowanie takie jak <a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gulp<\/a> i inne narz\u0119dzia nie s\u0105 nowe. Dla tych, kt\u00f3rzy nie u\u017cywali ich wcze\u015bniej, rozpocz\u0119cie pracy mo\u017ce by\u0107 troch\u0119 trudne (ale tak naprawd\u0119 nie powinno by\u0107).<\/p>\n<p>W por\u00f3wnaniu z narz\u0119dziami takimi jak <a href=\"https:\/\/codekitapp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CodeKit<\/a> (kt\u00f3re <a href=\"https:\/\/tommcfarlin.com\/codekit-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nadal lubi\u0119 i polecam<\/a>, w zale\u017cno\u015bci od projektu), maj\u0105 one troch\u0119 wi\u0119cej narzutu na ich konfiguracj\u0119, konfiguracj\u0119 i gotowo\u015b\u0107 do pracy.<\/p>\n<p>Ale kiedy ju\u017c to wszystko skonfigurujesz, mo\u017ce to by\u0107 naprawd\u0119 przydatne w rozproszonym zespole, niezale\u017cnie od systemu operacyjnego, i mo\u017ce pom\u00f3c w ulepszeniu procesu kompilacji.<\/p>\n<p>Nie taki jest jednak cel postu. Zamiast tego, oto lista kilku pakiet\u00f3w na pocz\u0105tek.<\/p>\n<p>Pomy\u015bl o nich w ten spos\u00f3b: je\u015bli szukasz sposob\u00f3w na prac\u0119 z <a href=\"http:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a>, JavaScript i optymalizacj\u0105 obraz\u00f3w, to s\u0105 dobre biblioteki.<\/p>\n<h2>Pakiety \u0142yk\u00f3w na pocz\u0105tek<\/h2>\n<p>Zanim przejdziemy do ka\u017cdego z poni\u017cszych pakiet\u00f3w, chc\u0119 zauwa\u017cy\u0107, \u017ce wa\u017cne jest, aby przeczyta\u0107 ka\u017cd\u0105 z linkowanych stron. Dokumentacja pomaga przej\u015b\u0107 przez opcje oferowane przez biblioteki, kt\u00f3rych nie pokazuje podany przeze mnie kod.<\/p>\n<p>Oznacza to, \u017ce nie nale\u017cy po prostu kopiowa\u0107 i wkleja\u0107 tego, co poda\u0142em. U\u017cyj go jako punktu wyj\u015bcia, ale przeczytaj r\u00f3wnie\u017c dokumentacj\u0119. Mo\u017cesz nie znale\u017a\u0107 nic nowego.<\/p>\n<p>Z drugiej strony mo\u017ce si\u0119 okaza\u0107, \u017ce istniej\u0105 opcje dostosowywania konkretnego projektu.<\/p>\n<h3>1 Sass<\/h3>\n<p>Mo\u017cesz zdecydowa\u0107 si\u0119 na wsp\u00f3\u0142prac\u0119 z <a href=\"http:\/\/lesscss.org\/#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Less<\/a> (tak naprawd\u0119 nie jestem ani tu, ani tam), ale mam tendencj\u0119 do faworyzowania Sassa. Dlatego u\u017cywam biblioteki <a href=\"https:\/\/www.npmjs.com\/package\/gulp-sass\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-sass<\/a>, specjalnie do kompilowania plik\u00f3w Sass do 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=\"Pakiety kilku \u0142yk\u00f3w na pocz\u0105tek\" ><\/a><\/p>\n<p>Zwykle mam\u00a0 katalog <strong>asset<\/strong>, aw tym katalogu znajduj\u0105 si\u0119 podkatalogi dla <strong>obraz\u00f3w<\/strong>, <strong>styl\u00f3w<\/strong> i <strong>skrypt\u00f3w<\/strong>.<\/p>\n<p>W\u00a0 katalogu <strong>styles<\/strong> mam dwa podkatalogi:<\/p>\n<ol>\n<li><strong>scss<\/strong><\/li>\n<li><strong>css<\/strong><\/li>\n<\/ol>\n<p>Trzymam wszystkie moje pliki SCSS w odpowiednim katalogu, a nast\u0119pnie u\u017cywam gulp-sass do <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-00-gulp-sass-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wyprowadzania skompilowanych plik\u00f3w do 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>Stamt\u0105d kolejkuj\u0119 pliki CSS za pomoc\u0105 <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">niezb\u0119dnej funkcji WordPress API<\/a>.<\/p>\n<h3>2 Minimalizacja JavaScript<\/h3>\n<p>W tym momencie korzy\u015bci z minifikacji plik\u00f3w JavaScript zosta\u0142y udowodnione raz za razem, wi\u0119c nie zamierzam dalej omawia\u0107 tej kwestii.<\/p>\n<p>Jest kilka pakiet\u00f3w, kt\u00f3re wypr\u00f3bowa\u0142em, poniewa\u017c dotycz\u0105 one pracy z minifikacj\u0105 JavaScript, a <a href=\"https:\/\/www.npmjs.com\/package\/gulp-uglify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-uglify<\/a> jest tym, kt\u00f3rego u\u017cywam najbardziej.<\/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=\"Pakiety kilku \u0142yk\u00f3w na pocz\u0105tek\" ><\/a><\/p>\n<p>Przypomnij sobie z poprzedniej sekcji, \u017ce mam sw\u00f3j katalog asset\u00f3w, a w nim <strong>podkatalog<\/strong> skrypt\u00f3w<strong>.<\/strong> Ten katalog zawiera jeden w\u0142asny podkatalog: <strong>dev.<\/strong><\/p>\n<p>Bior\u0119 pliki JavaScript znajduj\u0105ce si\u0119 w <strong>dev<\/strong> i <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-01-gulp-uglify-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wyprowadzam je<\/a> do katalogu g\u0142\u00f3wnego\u00a0 katalogu <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>Stamt\u0105d, tak jak powy\u017cej, kolejkuj\u0119 je za pomoc\u0105 tej samej <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">funkcji API WordPress<\/a>.<\/p>\n<h3>3 Optymalizacja obrazu<\/h3>\n<p>Wreszcie, jedna rzecz, kt\u00f3ra mo\u017ce pom\u00f3c w szybkim wczytaniu stron, to zapewnienie optymalizacji zasob\u00f3w graficznych.<\/p>\n<p>Oczywi\u015bcie, istnieje kilka narz\u0119dzi, kt\u00f3rych mo\u017cesz u\u017cy\u0107 r\u0119cznie, aby to zrobi\u0107, ale je\u015bli cz\u0119sto dodajesz, zmieniasz lub modyfikujesz zasoby graficzne i chcesz zautomatyzowa\u0107 proces kompilacji optymalizacji, polecam u\u017cycie <a href=\"https:\/\/www.npmjs.com\/package\/gulp-imagemin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gulp-imagemin<\/a>.<\/p>\n<p>[obraz]<\/p>\n<p>Istnieje kilka zale\u017cno\u015bci dla tej konkretnej biblioteki, wi\u0119c musisz si\u0119 upewni\u0107, \u017ce s\u0105 one r\u00f3wnie\u017c uwzgl\u0119dnione. Obejmuj\u0105 one<\/p>\n<ul>\n<li>obraz-gifsicle,<\/li>\n<li>imagein-jpegtran,<\/li>\n<li>imagein-optipng,<\/li>\n<li>imagein-svgo.<\/li>\n<\/ul>\n<p>Mo\u017cna je r\u0119cznie doda\u0107 do plik\u00f3w konfiguracyjnych, zainstalowa\u0107 z wiersza polece\u0144 lub w inny spos\u00f3b. Niezale\u017cnie od tego upewnij si\u0119, \u017ce je masz, zanim spr\u00f3bujesz <a href=\"https:\/\/gist.github.com\/tommcfarlin\/8f2d3146cba5c565ad1e5d51e09a221c#file-02-gulp-image-optimization-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">zoptymalizowa\u0107 obrazy<\/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>Zauwa\u017c z powy\u017cszego kodu (i tego, o czym wspomnia\u0142em wcze\u015bniej), \u017ce m\u00f3j katalog <strong>obraz\u00f3w znajduje si\u0119 w<\/strong> <strong>zasobach<\/strong>, wi\u0119c po uruchomieniu zadania, jak wspomniano powy\u017cej, zoptymalizuje on dowolny z obs\u0142ugiwanych typ\u00f3w obraz\u00f3w w tej lokalizacji.<\/p>\n<h2>Pliki pakiet\u00f3w, pliki Gulp i wszystko inne?<\/h2>\n<p>Je\u015bli jeste\u015b nowicjuszem w Gulp, <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node<\/a> lub innych systemach kompilacji, jest troch\u0119 wi\u0119cej do om\u00f3wienia, je\u015bli chodzi o instalowanie i konfigurowanie Node i Gulp.<\/p>\n<p>Zdecydowa\u0142em si\u0119 na razie to pomin\u0105\u0107, poniewa\u017c istnieje wiele dokumentacji na ten temat, ale by\u0107 mo\u017ce przyjrz\u0119 si\u0119 temu, czego u\u017cywamy za ka\u017cdym razem, gdy w\u0142\u0105czamy to do naszych projekt\u00f3w.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oto kilka pakiet\u00f3w Gulp na pocz\u0105tek, szczeg\u00f3lnie je\u015bli szukasz \u0142atwych sposob\u00f3w pracy z Sass, JavaScript i optymalizacj\u0105 obrazu.<\/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":[732,897,805,845],"tags":[1169],"class_list":["post-229304","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-7","category-kod","category-php-7","category-samouczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229304"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229304\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224999"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}