{"id":232197,"date":"2023-01-09T12:48:00","date_gmt":"2023-01-09T09:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232197"},"modified":"2023-01-14T11:50:12","modified_gmt":"2023-01-14T08:50:12","slug":"julkaise-deno-moduuli-kolmessa-nopeassa-vaiheessa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/julkaise-deno-moduuli-kolmessa-nopeassa-vaiheessa\/","title":{"rendered":"Julkaise Deno-moduuli kolmessa nopeassa vaiheessa"},"content":{"rendered":"\n<p>Yksi Denon ydinominaisuuksista on, ett\u00e4 se ei ole riippuvainen keskitetyst\u00e4 pakettipalvelimesta, kuten Node.js teki npm:n kanssa. Kuka tahansa voi julkaista moduulin omalle palvelimelleen, ja niiden k\u00e4ytt\u00e4minen on eritt\u00e4in helppoa, kiitos Deno ratkaisee moduulien URL-osoitteet. Katsotaanpa, kuinka luodaan, julkaistaan \u200b\u200bja k\u00e4ytet\u00e4\u00e4n ensimm\u00e4ist\u00e4 Deno-moduuliamme.<\/p>\n<h2>Mit\u00e4 ovat Deno-moduulit?<\/h2>\n<p>Deno-moduulit ovat osia, joita voit ladata ja k\u00e4ytt\u00e4\u00e4 projektissasi, kuten Node.js-paketteja. Ne voivat vaihdella yksinkertaisesta funktiosta johonkin monimutkaiseen, kuten Oak, Denon http-moduulin v\u00e4liohjelmistokehys.<\/p>\n<p>Deno tarjoaa joukon vakiomoduuleja, kuten http-moduuli, jotka Denon ydintiimi tarkistaa. N\u00e4m\u00e4 toimivat taatusti tietyn Deno-version kanssa ja el\u00e4v\u00e4t samassa <a href=\"https:\/\/github.com\/denoland\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denoland\/deno<\/a> -varastossa, josta Denon l\u00e4hdekoodi l\u00f6ytyy.<\/p>\n<p>Vakiomoduulit sijaitsevat osoitteessa <a href=\"https:\/\/deno.land\/std\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/std<\/a>, \u00a0ja niihin p\u00e4\u00e4see URL-osoitteiden kautta kuten kaikkiin muihin Deno-yhteensopiviin ES-moduuleihin.<\/p>\n<p>Mutta Deno tukee my\u00f6s kolmannen osapuolen moduuleja, kuten Oakia, joita voit tuoda mist\u00e4 tahansa verkon paikasta, kuten GitHubista, henkil\u00f6kohtaisesta verkkopalvelimesta tai CDN:st\u00e4, kuten <a href=\"https:\/\/pika.dev\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pika.dev<\/a> tai <a href=\"https:\/\/jspm.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jspm.io<\/a>.<\/p>\n<p>Kolmannen osapuolen moduulien k\u00e4yt\u00f6n helpottamiseksi Deno tarjoaa joitain sis\u00e4\u00e4nrakennettuja ty\u00f6kaluja, kuten <code>deno info<\/code>ja <code>deno doc<\/code>. Lis\u00e4ksi Denon verkkosivusto tarjoaa my\u00f6s web-k\u00e4ytt\u00f6liittym\u00e4n moduulin dokumentaation katselua varten, saatavilla osoitteessa <a href=\"https:\/\/doc.deno.land\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doc.deno.land<\/a>.<\/p>\n<p>Sivusto tarjoaa my\u00f6s yksinkertaisen julkisen hosting-palvelun Deno-yhteensopiville ES-moduuleille, jotka l\u00f6ytyv\u00e4t osoitteesta <a href=\"https:\/\/deno.land\/x\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/x<\/a>.<\/p>\n<h2>Deno-moduulin kirjoittaminen<\/h2>\n<p>Ennen julkaisua meid\u00e4n on kirjoitettava moduulimme. Aiomme luoda yksinkertaisen k\u00e4\u00e4nnett\u00e4v\u00e4n sanasarjan. Jos sy\u00f6t\u00e4mme &quot;T\u00e4m\u00e4 on hauskaa&quot;, se palauttaa &quot;hauskaa on t\u00e4m\u00e4&quot;. Eritt\u00e4in yksinkertaista. Luo uusi kansio ja tiedosto moduulillesi siihen:<\/p>\n<pre><code>mkdir reverse-words\ncd reverse-words\ntouch mod.ts<\/code><\/pre>\n<p>Muokkaa <code>mod.ts<\/code>haluamallasi <a href=\"https:\/\/startfunction.com\/tag\/ide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IDE<\/a> :ll\u00e4 tai koodieditorilla, k\u00e4yt\u00e4n <a href=\"https:\/\/startfunction.com\/tag\/vs-code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VS-koodia<\/a>. Liit\u00e4 t\u00e4h\u00e4n:<\/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>Huomaa, ett\u00e4 t\u00e4m\u00e4 on <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript-<\/a> koodi. Yksi Denon hienoista ominaisuuksista on, ett\u00e4 se tukee TypeScripti\u00e4 natiivisti. Koska seuraavassa vaiheessa julkaisemme Deno-moduulimme GitHubissa, saatat haluta lis\u00e4t\u00e4 yksinkertaisen <code>README.md<\/code>, jossa on tietoja siit\u00e4.<\/p>\n<h2>Julkaise Deno-moduulisi<\/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=\"Julkaise Deno-moduuli kolmessa nopeassa vaiheessa\"><\/a><\/p>\n<p>Viimeinen vaihe ennen moduulin julkaisemista silt\u00e4 varalta, ett\u00e4 olet kiinnostunut l\u00e4hett\u00e4m\u00e4\u00e4n sen Denon arkistoon, on varmistaa, ett\u00e4 se on muotoiltu Denon muotoilustandardin mukaisesti. Voit tehd\u00e4 t\u00e4m\u00e4n k\u00e4skem\u00e4ll\u00e4 Denoa muotoilemaan koodisi suorittamalla:<\/p>\n<pre><code>deno fmt mod.ts<\/code><\/pre>\n<p>Julkaisemme moduulin GitHubissa ja lataamme sen sielt\u00e4 Deno-projektiimme. Juosta:<\/p>\n<pre><code>git init\ngit add. git commit -m \"Initial commit\"<\/code><\/pre>\n<p>Luo uusi arkisto GitHubissa ja j\u00e4t\u00e4 se tyhj\u00e4ksi. GitHub antaa sinulle ohjeet reposi julkaisemiseen, kuten<\/p>\n<pre><code>git remote add origin git@github.com:\/.git   \ngit push -u origin master            <\/code><\/pre>\n<p>T\u00e4m\u00e4 julkaisee moduulisi GitHubissa. Menestys! Nyt k\u00e4ytet\u00e4\u00e4n sit\u00e4.<\/p>\n<h2>K\u00e4yt\u00e4 Deno-moduuliasi<\/h2>\n<p>Kirjoita uusi tiedosto <code>index.ts<\/code>ja lis\u00e4\u00e4 siihen t\u00e4m\u00e4:<\/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>T\u00e4m\u00e4 lataa edellisess\u00e4 vaiheessa julkaisemasi moduulin ja k\u00e4ytt\u00e4\u00e4 sit\u00e4 merkkijonon k\u00e4\u00e4nt\u00e4miseen ja sen tuloksen kirjaamiseen. Voimme ajaa t\u00e4m\u00e4n Denon kanssa:<\/p>\n<pre><code>deno run index.ts<\/code><\/pre>\n<p>se tulee n\u00e4kyviin<\/p>\n<pre><code>fun is This<\/code><\/pre>\n<h2>Sinun vuorosi<\/h2>\n<p>Monimutkaisissa moduuleissa, joissa on monia riippuvaisia \u200b\u200bmoduuleja, saatat haluta k\u00e4ytt\u00e4\u00e4 Denon niputtajaa <a href=\"https:\/\/deno.land\/manual\/tools\/bundler\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">,<\/a> joka kokoaa kaiken yhteen moduuliin julkaisun helpottamiseksi. Oletko julkaissut Deno-moduulin? Kerro meille kommenteissa! Ja lue muut Denon artikkelit, kuten <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/10-mahtavaa-resurssia-oppia-ja-tyoeskennellae-denon-kanssa\/\" title=\"10 loistavaa resurssia oppiaksesi ja ty\u00f6skennell\u00e4ksesi Denon kanssa\">10 loistavaa resurssia oppiaksesi ja ty\u00f6skennell\u00e4ksesi Denon kanssa<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <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 ei luota keskitettyyn palvelimeen, kuten npm. Kuka tahansa voi julkaista moduulin palvelimelleen. Opi luomaan, julkaisemaan ja k\u00e4ytt\u00e4m\u00e4\u00e4n Deno-moduulia.<\/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":[782,750,1054,719,895,843],"tags":[1166],"class_list":["post-232197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-avoimen-laehdekoodin-ohjelmisto","category-avoin-laehdekoodi","category-cms-6","category-kehittaejae","category-koodi","category-opetusohjelmia","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=232197"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232197\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/158005"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=232197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=232197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=232197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}