{"id":232354,"date":"2023-01-09T12:42:00","date_gmt":"2023-01-09T09:42:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232354"},"modified":"2023-01-14T12:11:52","modified_gmt":"2023-01-14T09:11:52","slug":"pubblica-un-modulo-deno-in-3-rapidi-passaggi","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/pubblica-un-modulo-deno-in-3-rapidi-passaggi\/","title":{"rendered":"Pubblica un modulo Deno in 3 rapidi passaggi"},"content":{"rendered":"\n<p>Una delle caratteristiche principali di Deno \u00e8 che non si basa su un server di pacchetti centralizzato come ha fatto Node.js con npm. Chiunque pu\u00f2 pubblicare un modulo sul proprio server ed \u00e8 molto semplice utilizzarlo, grazie a Deno che risolve gli URL per i moduli. Vediamo come creare, pubblicare e utilizzare il nostro primo modulo Deno.<\/p>\n<h2>Cosa sono i moduli Deno?<\/h2>\n<p>I moduli Deno sono pezzi che puoi scaricare e utilizzare nel tuo progetto, in modo simile ai pacchetti Node.js. Possono variare dall&#8217;essere una semplice funzione a qualcosa di complesso come Oak, un framework middleware per il modulo http di Deno.<\/p>\n<p>Deno fornisce una serie di moduli standard come il modulo http che vengono esaminati dal team principale di Deno. Questi sono garantiti per funzionare insieme a una versione Deno specifica e vivono nello stesso\u00a0 repository <a href=\"https:\/\/github.com\/denoland\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denoland\/deno<\/a> in cui \u00e8 possibile trovare il codice sorgente di Deno.<\/p>\n<p>I moduli standard sono ospitati su <a href=\"https:\/\/deno.land\/std\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/std<\/a> e sono accessibili tramite URL come tutti gli altri moduli ES compatibili con Deno.<\/p>\n<p>Ma Deno supporta anche moduli di terze parti come Oak che puoi importare da qualsiasi posizione sul Web, come GitHub, un server web personale o un CDN come <a href=\"https:\/\/pika.dev\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pika.dev<\/a> o <a href=\"https:\/\/jspm.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jspm.io<\/a>.<\/p>\n<p>Per semplificare l&#8217;utilizzo di moduli di terze parti, Deno fornisce alcuni strumenti integrati come <code>deno info<\/code>e <code>deno doc<\/code>. Inoltre, il sito Web di Deno fornisce anche un&#8217;interfaccia utente Web per la visualizzazione della documentazione del modulo, disponibile all&#8217;indirizzo <a href=\"https:\/\/doc.deno.land\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doc.deno.land<\/a>.<\/p>\n<p>Il sito Web fornisce anche un semplice servizio di hosting pubblico per moduli ES compatibili con Deno che pu\u00f2 essere trovato su <a href=\"https:\/\/deno.land\/x\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/x<\/a>.<\/p>\n<h2>Scrivere il tuo modulo Deno<\/h2>\n<p>Prima di pubblicare, dobbiamo scrivere il nostro modulo. Creeremo un semplice per invertire una sequenza di parole. Se inseriamo &quot;This is fun&quot; restituir\u00e0 &quot;fun is This&quot;. Molto semplice. Crea una nuova cartella e il file per il tuo modulo al suo interno:<\/p>\n<pre><code>mkdir reverse-words\ncd reverse-words\ntouch mod.ts<\/code><\/pre>\n<p>Modifica <code>mod.ts<\/code>nel tuo <a href=\"https:\/\/startfunction.com\/tag\/ide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IDE<\/a> o editor di codice preferito, user\u00f2 <a href=\"https:\/\/startfunction.com\/tag\/vs-code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VS Code<\/a>. Incolla questo in esso:<\/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>Nota che questo \u00e8 il codice <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript .<\/a> Una delle grandi caratteristiche di Deno \u00e8 che supporta TypeScript in modo nativo. Poich\u00e9 nel prossimo passaggio pubblicheremo il nostro modulo Deno su GitHub, potresti voler aggiungere un semplice <code>README.md<\/code>con alcune informazioni a riguardo.<\/p>\n<h2>Pubblica il tuo modulo 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=\"Pubblica un modulo Deno in 3 rapidi passaggi\"><\/a><\/p>\n<p>Un ultimo passaggio prima di pubblicare il tuo modulo nel caso tu sia interessato a inviarlo al repository di Deno, \u00e8 assicurarti che sia formattato secondo lo standard di formattazione di Deno. Per fare ci\u00f2, puoi dire a Deno di formattare il tuo codice eseguendo:<\/p>\n<pre><code>deno fmt mod.ts<\/code><\/pre>\n<p>Pubblicheremo il modulo su GitHub e lo scaricheremo da l\u00ec nel nostro progetto Deno. Correre:<\/p>\n<pre><code>git init\ngit add. git commit -m \"Initial commit\"<\/code><\/pre>\n<p>Crea un nuovo repository su GitHub e lascialo vuoto. GitHub ti dar\u00e0 le istruzioni per pubblicare il tuo repository, in modo simile a<\/p>\n<pre><code>git remote add origin git@github.com:\/.git   \ngit push -u origin master            <\/code><\/pre>\n<p>Questo pubblicher\u00e0 il tuo modulo su GitHub. Successo! Ora usiamolo.<\/p>\n<h2>Usa il tuo modulo Deno<\/h2>\n<p>Scrivi un nuovo file <code>index.ts<\/code>e aggiungi questo al suo interno:<\/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>Questo caricher\u00e0 il modulo che hai pubblicato nel passaggio precedente e lo utilizzer\u00e0 per invertire una stringa e registrarne il risultato. Possiamo eseguirlo con Deno:<\/p>\n<pre><code>deno run index.ts<\/code><\/pre>\n<p>verr\u00e0 visualizzato<\/p>\n<pre><code>fun is This<\/code><\/pre>\n<h2>Il tuo turno<\/h2>\n<p>Nel caso di moduli complessi con molti moduli dipendenti, potresti voler utilizzare il <a href=\"https:\/\/deno.land\/manual\/tools\/bundler\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bundler<\/a> di Deno che compiler\u00e0 tutto in un unico modulo per una pubblicazione pi\u00f9 semplice. Hai pubblicato un modulo Deno? Fateci sapere nei commenti! E leggi i nostri altri articoli su Deno come <a href=\"https:\/\/wordpress.mediadoma.com\/it\/10-fantastiche-risorse-per-imparare-e-lavorare-con-deno\/\" title=\"10 fantastiche risorse per imparare e lavorare con Deno\">10 fantastiche risorse per imparare e lavorare con Deno<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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 non si basa su un server centralizzato come npm. Chiunque pu\u00f2 pubblicare un modulo sul proprio server. Impara a creare, pubblicare e utilizzare un modulo 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":[1055,896,751,783,720,844],"tags":[1168],"class_list":["post-232354","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms-7","category-codice","category-open-source-projektmanagement-3","category-software-open-source","category-sviluppatore","category-tutorial","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=232354"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232354\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/158005"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}