{"id":231541,"date":"2023-01-09T12:51:00","date_gmt":"2023-01-09T09:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231541"},"modified":"2023-01-14T11:59:09","modified_gmt":"2023-01-14T08:59:09","slug":"opublikuj-modul-deno-w-3-szybkich-krokach","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/opublikuj-modul-deno-w-3-szybkich-krokach\/","title":{"rendered":"Opublikuj modu\u0142 Deno w 3 szybkich krokach"},"content":{"rendered":"\n<p>Jedn\u0105 z podstawowych cech Deno jest to, \u017ce nie opiera si\u0119 on na scentralizowanym serwerze pakiet\u00f3w, takim jak Node.js z npm. Ka\u017cdy mo\u017ce opublikowa\u0107 modu\u0142 na w\u0142asnym serwerze i bardzo \u0142atwo z nich korzysta\u0107, dzi\u0119ki rozwi\u0105zaniu Deno adres\u00f3w URL modu\u0142\u00f3w. Zobaczmy, jak tworzy\u0107, publikowa\u0107 i korzysta\u0107 z naszego pierwszego modu\u0142u Deno.<\/p>\n<h2>Czym s\u0105 modu\u0142y Deno?<\/h2>\n<p>Modu\u0142y Deno to elementy, kt\u00f3re mo\u017cesz pobra\u0107 i wykorzysta\u0107 w swoim projekcie, podobnie jak pakiety Node.js. Mog\u0105 by\u0107 zar\u00f3wno proste, jak i z\u0142o\u017cone, takie jak Oak, framework oprogramowania po\u015brednicz\u0105cego dla modu\u0142u http firmy Deno.<\/p>\n<p>Deno dostarcza zestaw standardowych modu\u0142\u00f3w, takich jak modu\u0142 http, kt\u00f3re s\u0105 sprawdzane przez g\u0142\u00f3wny zesp\u00f3\u0142 Deno. Gwarantuj\u0105 one, \u017ce b\u0119d\u0105 dzia\u0142a\u0107 wraz z okre\u015blon\u0105 wersj\u0105 Deno i znajdowa\u0107 si\u0119 w tym samym\u00a0 repozytorium <a href=\"https:\/\/github.com\/denoland\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denoland\/deno<\/a>, w kt\u00f3rym mo\u017cna znale\u017a\u0107 kod \u017ar\u00f3d\u0142owy Deno.<\/p>\n<p>Standardowe modu\u0142y s\u0105 hostowane na <a href=\"https:\/\/deno.land\/std\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/std<\/a> i mo\u017cna do nich uzyska\u0107 dost\u0119p za po\u015brednictwem adres\u00f3w URL, podobnie jak wszystkie inne modu\u0142y ES zgodne z Deno.<\/p>\n<p>Ale Deno obs\u0142uguje r\u00f3wnie\u017c modu\u0142y innych firm, takie jak Oak, kt\u00f3re mo\u017cna importowa\u0107 z dowolnego miejsca w sieci, takiego jak GitHub, osobisty serwer WWW lub CDN, taki jak <a href=\"https:\/\/pika.dev\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pika.dev<\/a> lub <a href=\"https:\/\/jspm.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jspm.io<\/a>.<\/p>\n<p>Aby u\u0142atwi\u0107 korzystanie z modu\u0142\u00f3w innych firm, Deno udost\u0119pnia kilka wbudowanych narz\u0119dzi, takich jak <code>deno info<\/code>i <code>deno doc<\/code>. Dodatkowo strona internetowa Deno udost\u0119pnia r\u00f3wnie\u017c webowy interfejs u\u017cytkownika do przegl\u0105dania dokumentacji modu\u0142u, dost\u0119pny pod adresem <a href=\"https:\/\/doc.deno.land\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doc.deno.land<\/a>.<\/p>\n<p>Witryna udost\u0119pnia r\u00f3wnie\u017c prost\u0105 us\u0142ug\u0119 publicznego hostingu modu\u0142\u00f3w ES zgodnych z Deno, kt\u00f3r\u0105 mo\u017cna znale\u017a\u0107 pod adresem <a href=\"https:\/\/deno.land\/x\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/x<\/a>.<\/p>\n<h2>Pisanie modu\u0142u Deno<\/h2>\n<p>Przed opublikowaniem musimy napisa\u0107 nasz modu\u0142. Stworzymy prost\u0105 do odwr\u00f3cenia sekwencj\u0119 s\u0142\u00f3w. Je\u015bli wpiszemy \u201eThis is fun&quot; zwr\u00f3ci \u201efun is This&#8221;. Bardzo proste. Utw\u00f3rz w nim nowy folder i plik dla swojego modu\u0142u:<\/p>\n<pre><code>mkdir reverse-words\ncd reverse-words\ntouch mod.ts<\/code><\/pre>\n<p>Edytuj <code>mod.ts<\/code>w wybranym przez siebie <a href=\"https:\/\/startfunction.com\/tag\/ide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IDE<\/a> lub edytorze kodu, u\u017cyj\u0119 <a href=\"https:\/\/startfunction.com\/tag\/vs-code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VS Code<\/a>. Wklej to w nim:<\/p>\n<pre><code>const reverseWords = (str: String) =&gt;\n  str.split(\" \").reduce(\n    (revStr: Array, word: String) =&gt; [word, ...revStr],\n    [],\n  ).join(\" \");\nexport default reverseWords;<\/code><\/pre>\n<p>Zauwa\u017c, \u017ce jest to kod <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript .<\/a> Jedn\u0105 z wielkich cech Deno jest to, \u017ce obs\u0142uguje natywnie TypeScript. Poniewa\u017c w nast\u0119pnym kroku opublikujemy nasz modu\u0142 Deno na GitHub, mo\u017cesz doda\u0107 prosty <code>README.md<\/code>z kilkoma informacjami na jego temat.<\/p>\n<h2>Opublikuj sw\u00f3j modu\u0142 Deno<\/h2>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158004-61e6c7eb03544.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-158004-61e6c7eb03544.png\" alt=\"Opublikuj modu\u0142 Deno w 3 szybkich krokach\"><\/a><\/p>\n<p>Ostatnim krokiem przed opublikowaniem modu\u0142u, je\u015bli chcesz wys\u0142a\u0107 go do repozytorium Deno, jest upewnienie si\u0119, \u017ce jest sformatowany zgodnie ze standardem formatowania Deno. Aby to zrobi\u0107, mo\u017cesz powiedzie\u0107 Deno, aby sformatowa\u0142 kod, uruchamiaj\u0105c:<\/p>\n<pre><code>deno fmt mod.ts<\/code><\/pre>\n<p>Opublikujemy modu\u0142 na GitHub i pobierzemy go stamt\u0105d w naszym projekcie Deno. Biega\u0107:<\/p>\n<pre><code>git init\ngit add. git commit -m \"Initial commit\"<\/code><\/pre>\n<p>Utw\u00f3rz nowe repozytorium na GitHub i pozostaw je puste. GitHub przeka\u017ce Ci instrukcje dotycz\u0105ce publikowania repozytorium, podobne do<\/p>\n<pre><code>git remote add origin git@github.com:\/.git   \ngit push -u origin master            <\/code><\/pre>\n<p>Spowoduje to opublikowanie Twojego modu\u0142u na GitHub. Powodzenie! Teraz skorzystajmy.<\/p>\n<h2>U\u017cyj swojego modu\u0142u Deno<\/h2>\n<p>Napisz nowy plik <code>index.ts<\/code>i dodaj w nim to:<\/p>\n<pre><code>import reverseWords from 'https:\/\/raw.githubusercontent.com\/startfunction\/reverse-words\/master\/mod.ts';\n\nconsole.log( reverseWords( 'This is fun') );<\/code><\/pre>\n<p>Spowoduje to za\u0142adowanie modu\u0142u opublikowanego w poprzednim kroku i u\u017cyje go do odwr\u00f3cenia ci\u0105gu i zapisania jego wyniku. Mo\u017cemy to uruchomi\u0107 z Deno:<\/p>\n<pre><code>deno run index.ts<\/code><\/pre>\n<p>to si\u0119 wy\u015bwietli<\/p>\n<pre><code>fun is This<\/code><\/pre>\n<h2>Twoja kolej<\/h2>\n<p>W przypadku z\u0142o\u017conych modu\u0142\u00f3w z wieloma zale\u017cnymi modu\u0142ami, mo\u017cesz chcie\u0107 u\u017cy\u0107 <a href=\"https:\/\/deno.land\/manual\/tools\/bundler\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bundlera<\/a> Deno, kt\u00f3ry skompiluje wszystko w jednym module dla \u0142atwiejszego publikowania. Czy opublikowa\u0142e\u015b modu\u0142 Deno? Daj nam zna\u0107 w komentarzach! Przeczytaj tak\u017ce nasze inne artyku\u0142y o Deno, takie jak <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/10-wspanialych-zasobow-do-nauki-i-pracy-z-deno\/\" title=\"10 wspania\u0142ych zasob\u00f3w do nauki i pracy z Deno\">10 wspania\u0142ych zasob\u00f3w do nauki i pracy z Deno<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deno nie polega na scentralizowanym serwerze, takim jak npm. Ka\u017cdy mo\u017ce opublikowa\u0107 modu\u0142 na swoim serwerze. Naucz si\u0119 tworzy\u0107, publikowa\u0107 i u\u017cywa\u0107 modu\u0142u Deno.<\/p>\n","protected":false},"author":1,"featured_media":158005,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1056,721,897,784,752,845],"tags":[1169],"class_list":["post-231541","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms-8","category-deweloper","category-kod","category-oprogramowanie-open-source","category-otwarte-zrodlo","category-samouczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231541","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=231541"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231541\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/158005"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=231541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=231541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=231541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}