{"id":231637,"date":"2023-01-09T12:34:00","date_gmt":"2023-01-09T09:34:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231637"},"modified":"2023-01-14T11:56:19","modified_gmt":"2023-01-14T08:56:19","slug":"publicera-en-deno-modul-i-tre-snabba-steg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/publicera-en-deno-modul-i-tre-snabba-steg\/","title":{"rendered":"Publicera en Deno-modul i tre snabba steg"},"content":{"rendered":"\n<p>En av k\u00e4rnfunktionerna i Deno \u00e4r att den inte f\u00f6rlitar sig p\u00e5 en centraliserad paketserver som Node.js gjorde med npm. Vem som helst kan publicera en modul p\u00e5 sin egen server och det \u00e4r v\u00e4ldigt enkelt att anv\u00e4nda dem, tack vare att Deno l\u00f6ser webbadresser f\u00f6r moduler. L\u00e5t oss se hur du skapar, publicerar och anv\u00e4nder v\u00e5r f\u00f6rsta Deno-modul.<\/p>\n<h2>Vad \u00e4r Deno-moduler?<\/h2>\n<p>Deno-moduler \u00e4r delar av som du kan ladda ner och anv\u00e4nda i ditt projekt, liknande Node.js-paket. De kan str\u00e4cka sig fr\u00e5n att vara en enkel funktion till n\u00e5got komplext som Oak, ett middleware-ramverk f\u00f6r Denos http-modul.<\/p>\n<p>Deno tillhandah\u00e5ller en upps\u00e4ttning standardmoduler som http-modulen som granskas av k\u00e4rnteamet i Deno. Dessa fungerar garanterat tillsammans med en specifik Deno-version och lever i samma <a href=\"https:\/\/github.com\/denoland\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denoland\/deno-<\/a> f\u00f6rr\u00e5d d\u00e4r Deno-k\u00e4llkoden kan hittas.<\/p>\n<p>Standardmodulerna finns p\u00e5 <a href=\"https:\/\/deno.land\/std\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/std<\/a> och kan n\u00e5s via URL:er som alla andra Deno-kompatibla ES-moduler.<\/p>\n<p>Men Deno st\u00f6der ocks\u00e5 tredjepartsmoduler som Oak som du kan importera fr\u00e5n vilken plats som helst p\u00e5 webben, som GitHub, en personlig webbserver eller ett CDN som <a href=\"https:\/\/pika.dev\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pika.dev<\/a> eller <a href=\"https:\/\/jspm.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jspm.io<\/a>.<\/p>\n<p>F\u00f6r att g\u00f6ra det l\u00e4ttare att konsumera tredjepartsmoduler tillhandah\u00e5ller Deno n\u00e5gra inbyggda verktyg som <code>deno info<\/code>och <code>deno doc<\/code>. Dessutom tillhandah\u00e5ller Denos webbplats \u00e4ven ett webbgr\u00e4nssnitt f\u00f6r visning av moduldokumentation, tillg\u00e4ngligt p\u00e5 <a href=\"https:\/\/doc.deno.land\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doc.deno.land<\/a>.<\/p>\n<p>Webbplatsen tillhandah\u00e5ller ocks\u00e5 en enkel offentlig v\u00e4rdtj\u00e4nst f\u00f6r Deno-kompatibla ES-moduler som finns p\u00e5 <a href=\"https:\/\/deno.land\/x\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/x<\/a>.<\/p>\n<h2>Skriver din Deno-modul<\/h2>\n<p>Innan vi publicerar m\u00e5ste vi skriva v\u00e5r modul. Vi kommer att skapa en enkel att v\u00e4nda en sekvens av ord. Om vi \u200b\u200bmatar in &quot;Det h\u00e4r \u00e4r kul&quot; kommer det att returnera &quot;roligt \u00e4r det h\u00e4r&quot;. Mycket enkelt. Skapa en ny mapp och filen f\u00f6r din modul i den:<\/p>\n<pre><code>mkdir reverse-words\ncd reverse-words\ntouch mod.ts<\/code><\/pre>\n<p>Redigera <code>mod.ts<\/code>i din <a href=\"https:\/\/startfunction.com\/tag\/ide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IDE<\/a> eller kodredigerare, jag anv\u00e4nder <a href=\"https:\/\/startfunction.com\/tag\/vs-code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VS Code<\/a>. Klistra in det h\u00e4r:<\/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>Observera att detta \u00e4r <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript-<\/a> kod. En av de fantastiska funktionerna i Deno \u00e4r att den st\u00f6der TypeScript inbyggt. Eftersom vi i n\u00e4sta steg kommer att publicera v\u00e5r Deno-modul till GitHub, kanske du vill l\u00e4gga till en enkel <code>README.md<\/code>med lite information om det.<\/p>\n<h2>Publicera din Deno-modul<\/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=\"Publicera en Deno-modul i tre snabba steg\"><\/a><\/p>\n<p>Ett sista steg innan du publicerar din modul om du \u00e4r intresserad av att skicka den till Denos arkiv, \u00e4r att se till att den \u00e4r formaterad enligt Denos formateringsstandard. F\u00f6r att g\u00f6ra det kan du be Deno att formatera din kod genom att k\u00f6ra:<\/p>\n<pre><code>deno fmt mod.ts<\/code><\/pre>\n<p>Vi kommer att publicera modulen till GitHub och kommer att ladda ner den d\u00e4rifr\u00e5n i v\u00e5rt Deno-projekt. Springa:<\/p>\n<pre><code>git init\ngit add. git commit -m \"Initial commit\"<\/code><\/pre>\n<p>Skapa ett nytt arkiv p\u00e5 GitHub och l\u00e4mna det tomt. GitHub kommer att ge dig instruktioner f\u00f6r att publicera din repo, liknande<\/p>\n<pre><code>git remote add origin git@github.com:\/.git   \ngit push -u origin master            <\/code><\/pre>\n<p>Detta kommer att publicera din modul till GitHub. Framg\u00e5ng! L\u00e5t oss nu anv\u00e4nda det.<\/p>\n<h2>Anv\u00e4nd din Deno-modul<\/h2>\n<p>Skriv en ny fil <code>index.ts<\/code>och l\u00e4gg till denna i den:<\/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>Detta kommer att ladda modulen du publicerade i f\u00f6reg\u00e5ende steg och kommer att anv\u00e4nda den f\u00f6r att v\u00e4nda en str\u00e4ng och logga dess resultat. Vi kan k\u00f6ra detta med Deno:<\/p>\n<pre><code>deno run index.ts<\/code><\/pre>\n<p>det kommer att visas<\/p>\n<pre><code>fun is This<\/code><\/pre>\n<h2>Din tur<\/h2>\n<p>N\u00e4r det g\u00e4ller komplexa moduler med m\u00e5nga beroende moduler, kanske du vill anv\u00e4nda <a href=\"https:\/\/deno.land\/manual\/tools\/bundler\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Denos bunter<\/a> som kommer att kompilera allt i en enda modul f\u00f6r enklare publicering. Har du publicerat en Deno-modul? L\u00e5t oss veta i kommentarerna! Och l\u00e4s v\u00e5ra andra artiklar om Deno som <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/10-fantastiska-resurser-att-laera-sig-och-arbeta-med-deno\/\" title=\"10 fantastiska resurser f\u00f6r att l\u00e4ra dig och arbeta med Deno\">10 fantastiska resurser f\u00f6r att l\u00e4ra dig och arbeta med Deno<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <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 f\u00f6rlitar sig inte p\u00e5 en centraliserad server som npm. Vem som helst kan publicera en modul p\u00e5 sin server. L\u00e4r dig att skapa, publicera och anv\u00e4nda en Deno-modul.<\/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":[1058,848,901,755,787,724],"tags":[1173],"class_list":["post-231637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms-10","category-handledningar","category-koda","category-oeppen-kaella","category-programvara-med-oeppen-kaellkod","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231637","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=231637"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231637\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/158005"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=231637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=231637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=231637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}