{"id":231815,"date":"2023-01-09T12:49:00","date_gmt":"2023-01-09T09:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231815"},"modified":"2023-01-14T11:30:12","modified_gmt":"2023-01-14T08:30:12","slug":"publique-un-modulo-deno-en-3-pasos-rapidos","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/publique-un-modulo-deno-en-3-pasos-rapidos\/","title":{"rendered":"Publique un m\u00f3dulo Deno en 3 pasos r\u00e1pidos"},"content":{"rendered":"\n<p>Una de las caracter\u00edsticas principales de Deno es que no se basa en un servidor de paquetes centralizado como lo hizo Node.js con npm. Cualquiera puede publicar un m\u00f3dulo en su propio servidor y usarlo es muy sencillo, gracias a que Deno resuelve las URL para los m\u00f3dulos. Veamos c\u00f3mo crear, publicar y usar nuestro primer m\u00f3dulo Deno.<\/p>\n<h2>\u00bfQu\u00e9 son los m\u00f3dulos Deno?<\/h2>\n<p>Los m\u00f3dulos de Deno son piezas que puede descargar y usar en su proyecto, de forma similar a los paquetes de Node.js. Pueden variar desde ser una funci\u00f3n simple hasta algo complejo como Oak, un marco de trabajo intermedio para el m\u00f3dulo http de Deno.<\/p>\n<p>Deno proporciona un conjunto de m\u00f3dulos est\u00e1ndar como el m\u00f3dulo http que son revisados \u200b\u200bpor el equipo central de Deno. Estos est\u00e1n garantizados para funcionar junto con una versi\u00f3n espec\u00edfica de Deno y viven en el mismo\u00a0 repositorio <a href=\"https:\/\/github.com\/denoland\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denoland\/deno<\/a> donde se puede encontrar el c\u00f3digo fuente de Deno.<\/p>\n<p>Los m\u00f3dulos est\u00e1ndar est\u00e1n alojados en <a href=\"https:\/\/deno.land\/std\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/std<\/a> y se puede acceder a ellos a trav\u00e9s de URL como todos los dem\u00e1s m\u00f3dulos ES compatibles con Deno.<\/p>\n<p>Pero Deno tambi\u00e9n admite m\u00f3dulos de terceros como Oak que puede importar desde cualquier ubicaci\u00f3n en la web, como GitHub, un servidor web personal o un CDN como <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>Para facilitar el consumo de m\u00f3dulos de terceros, Deno proporciona algunas herramientas integradas como <code>deno info<\/code>y <code>deno doc<\/code>. Adem\u00e1s, el sitio web de Deno tambi\u00e9n proporciona una interfaz de usuario web para ver la documentaci\u00f3n del m\u00f3dulo, disponible en <a href=\"https:\/\/doc.deno.land\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doc.deno.land<\/a>.<\/p>\n<p>El sitio web tambi\u00e9n proporciona un servicio de alojamiento p\u00fablico simple para m\u00f3dulos ES compatibles con Deno que se pueden encontrar en <a href=\"https:\/\/deno.land\/x\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/x<\/a>.<\/p>\n<h2>Escribiendo tu m\u00f3dulo Deno<\/h2>\n<p>Antes de publicar, necesitamos escribir nuestro m\u00f3dulo. Vamos a crear un simple para invertir una secuencia de palabras. Si ingresamos &quot;Esto es divertido&quot;, devolver\u00e1 &quot;Esto es divertido&quot;. Muy simple. Cree una nueva carpeta y el archivo para su m\u00f3dulo en ella:<\/p>\n<pre><code>mkdir reverse-words\ncd reverse-words\ntouch mod.ts<\/code><\/pre>\n<p>Edite <code>mod.ts<\/code>en su <a href=\"https:\/\/startfunction.com\/tag\/ide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IDE<\/a> o editor de c\u00f3digo de su elecci\u00f3n, usar\u00e9 <a href=\"https:\/\/startfunction.com\/tag\/vs-code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VS Code<\/a>. Pega esto en \u00e9l:<\/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>Tenga en cuenta que este es un c\u00f3digo <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript .<\/a> Una de las grandes caracter\u00edsticas de Deno es que admite TypeScript de forma nativa. Dado que en el pr\u00f3ximo paso publicaremos nuestro m\u00f3dulo Deno en GitHub, es posible que desee agregar un simple <code>README.md<\/code>con informaci\u00f3n al respecto.<\/p>\n<h2>Publica tu m\u00f3dulo 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=\"Publique un m\u00f3dulo Deno en 3 pasos r\u00e1pidos\"><\/a><\/p>\n<p>Un paso final antes de publicar su m\u00f3dulo en caso de que est\u00e9 interesado en enviarlo al repositorio de Deno, es asegurarse de que est\u00e9 formateado de acuerdo con el est\u00e1ndar de formato de Deno. Para hacerlo, puede decirle a Deno que formatee su c\u00f3digo ejecutando:<\/p>\n<pre><code>deno fmt mod.ts<\/code><\/pre>\n<p>Publicaremos el m\u00f3dulo en GitHub y lo descargaremos desde all\u00ed en nuestro proyecto Deno. Correr:<\/p>\n<pre><code>git init\ngit add. git commit -m \"Initial commit\"<\/code><\/pre>\n<p>Cree un nuevo repositorio en GitHub y d\u00e9jelo vac\u00edo. GitHub le dar\u00e1 instrucciones para publicar su repositorio, similar a<\/p>\n<pre><code>git remote add origin git@github.com:\/.git   \ngit push -u origin master            <\/code><\/pre>\n<p>Esto publicar\u00e1 su m\u00f3dulo en GitHub. \u00a1\u00c9xito! Ahora vamos a usarlo.<\/p>\n<h2>Usa tu m\u00f3dulo Deno<\/h2>\n<p>Escriba un nuevo archivo <code>index.ts<\/code>y agregue esto en \u00e9l:<\/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>Esto cargar\u00e1 el m\u00f3dulo que public\u00f3 en el paso anterior y lo usar\u00e1 para invertir una cadena y registrar su resultado. Podemos ejecutar esto con Deno:<\/p>\n<pre><code>deno run index.ts<\/code><\/pre>\n<p>se mostrar\u00e1<\/p>\n<pre><code>fun is This<\/code><\/pre>\n<h2>Tu turno<\/h2>\n<p>En el caso de m\u00f3dulos complejos con muchos m\u00f3dulos dependientes, es posible que desee utilizar el paquete de Deno <a href=\"https:\/\/deno.land\/manual\/tools\/bundler\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">que<\/a> compilar\u00e1 todo en un solo m\u00f3dulo para facilitar la publicaci\u00f3n. \u00bfHas publicado un m\u00f3dulo Deno? \u00a1Cu\u00e9ntanos en los comentarios! Y lea nuestros otros art\u00edculos sobre Deno como <a href=\"https:\/\/wordpress.mediadoma.com\/es\/10-excelentes-recursos-para-aprender-y-trabajar-con-deno\/\" title=\"10 excelentes recursos para aprender y trabajar con Deno\">10 excelentes recursos para aprender y trabajar con Deno<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <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 no depende de un servidor centralizado como npm. Cualquiera puede publicar un m\u00f3dulo en su servidor. Aprenda a crear, publicar y usar un m\u00f3dulo 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":[1051,892,716,747,779,840],"tags":[1172],"class_list":["post-231815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms-3","category-codigo","category-desarrollador","category-fuente-abierta","category-software-de-codigo-abierto","category-tutoriales","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231815"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231815\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/158005"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}