{"id":232097,"date":"2023-01-09T12:32:00","date_gmt":"2023-01-09T09:32:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232097"},"modified":"2023-01-14T11:26:54","modified_gmt":"2023-01-14T08:26:54","slug":"publiez-un-module-deno-en-3-etapes-rapides","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/publiez-un-module-deno-en-3-etapes-rapides\/","title":{"rendered":"Publiez un module Deno en 3 \u00e9tapes rapides"},"content":{"rendered":"\n<p>L&rsquo;une des principales fonctionnalit\u00e9s de Deno est qu&rsquo;il ne repose pas sur un serveur de packages centralis\u00e9 comme Node.js l&rsquo;a fait avec npm. N&rsquo;importe qui peut publier un module sur son propre serveur et c&rsquo;est tr\u00e8s simple de les utiliser, gr\u00e2ce aux URL de r\u00e9solution de Deno pour les modules. Voyons comment cr\u00e9er, publier et utiliser notre premier module Deno.<\/p>\n<h2>Que sont les modules Deno ?<\/h2>\n<p>Les modules Deno sont des \u00e9l\u00e9ments que vous pouvez t\u00e9l\u00e9charger et utiliser dans votre projet, similaires aux packages Node.js. Ils peuvent aller d&rsquo;une fonction simple \u00e0 quelque chose de complexe comme Oak, un framework middleware pour le module http de Deno.<\/p>\n<p>Deno fournit un ensemble de modules standard tels que le module http qui sont examin\u00e9s par l&rsquo;\u00e9quipe principale de Deno. Ceux-ci sont garantis pour fonctionner avec une version sp\u00e9cifique de Deno et vivre dans le m\u00eame\u00a0 r\u00e9f\u00e9rentiel <a href=\"https:\/\/github.com\/denoland\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denoland\/deno<\/a> o\u00f9 le code source Deno peut \u00eatre trouv\u00e9.<\/p>\n<p>Les modules standard sont h\u00e9berg\u00e9s sur <a href=\"https:\/\/deno.land\/std\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/std<\/a> et sont accessibles via des URL comme tous les autres modules ES compatibles Deno.<\/p>\n<p>Mais Deno prend \u00e9galement en charge des modules tiers comme Oak que vous pouvez importer depuis n&rsquo;importe quel emplacement sur le Web, comme GitHub, un serveur Web personnel ou un CDN comme <a href=\"https:\/\/pika.dev\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pika.dev<\/a> ou <a href=\"https:\/\/jspm.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jspm.io<\/a>.<\/p>\n<p>Pour faciliter l&rsquo;utilisation de modules tiers, Deno fournit des outils int\u00e9gr\u00e9s tels que <code>deno info<\/code>et <code>deno doc<\/code>. De plus, le site Web de Deno fournit \u00e9galement une interface utilisateur Web pour afficher la documentation du module, disponible sur <a href=\"https:\/\/doc.deno.land\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doc.deno.land<\/a>.<\/p>\n<p>Le site Web fournit \u00e9galement un service d&rsquo;h\u00e9bergement public simple pour les modules ES compatibles Deno qui peuvent \u00eatre trouv\u00e9s sur <a href=\"https:\/\/deno.land\/x\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">deno.land\/x<\/a>.<\/p>\n<h2>\u00c9crire votre module Deno<\/h2>\n<p>Avant de publier, nous devons \u00e9crire notre module. Nous allons cr\u00e9er un simple pour inverser une s\u00e9quence de mots. Si nous saisissons &quot;C&rsquo;est amusant&quot;, cela renverra &quot;C&rsquo;est amusant&quot;. Tr\u00e8s simple. Cr\u00e9ez un nouveau dossier et le fichier de votre module\u00a0:<\/p>\n<pre><code>mkdir reverse-words\ncd reverse-words\ntouch mod.ts<\/code><\/pre>\n<p>Modifiez <code>mod.ts<\/code>dans votre <a href=\"https:\/\/startfunction.com\/tag\/ide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IDE<\/a> ou l&rsquo;\u00e9diteur de code de votre choix, j&rsquo;utiliserai <a href=\"https:\/\/startfunction.com\/tag\/vs-code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VS Code<\/a>. Collez-y ceci\u00a0:<\/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>Notez qu&rsquo;il s&rsquo;agit de code <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript .<\/a> L&rsquo;une des grandes fonctionnalit\u00e9s de Deno est qu&rsquo;il prend en charge TypeScript de mani\u00e8re native. \u00c9tant donn\u00e9 qu&rsquo;\u00e0 l&rsquo;\u00e9tape suivante, nous publierons notre module Deno sur GitHub, vous voudrez peut-\u00eatre ajouter un simple <code>README.md<\/code>avec quelques informations \u00e0 ce sujet.<\/p>\n<h2>Publiez votre module 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=\"Publiez un module Deno en 3 \u00e9tapes rapides\"><\/a><\/p>\n<p>Une derni\u00e8re \u00e9tape avant de publier votre module au cas o\u00f9 vous souhaiteriez l&rsquo;envoyer au r\u00e9f\u00e9rentiel de Deno consiste \u00e0 vous assurer qu&rsquo;il est format\u00e9 conform\u00e9ment \u00e0 la norme de formatage de Deno. Pour ce faire, vous pouvez demander \u00e0 Deno de formater votre code en ex\u00e9cutant\u00a0:<\/p>\n<pre><code>deno fmt mod.ts<\/code><\/pre>\n<p>Nous allons publier le module sur GitHub et le t\u00e9l\u00e9charger \u00e0 partir de l\u00e0 dans notre projet Deno. Courir:<\/p>\n<pre><code>git init\ngit add. git commit -m \"Initial commit\"<\/code><\/pre>\n<p>Cr\u00e9ez un nouveau r\u00e9f\u00e9rentiel sur GitHub et laissez-le vide. GitHub vous donnera des instructions pour publier votre repo, similaire \u00e0<\/p>\n<pre><code>git remote add origin git@github.com:\/.git   \ngit push -u origin master            <\/code><\/pre>\n<p>Cela publiera votre module sur GitHub. Succ\u00e8s! Maintenant, utilisons-le.<\/p>\n<h2>Utilisez votre module Deno<\/h2>\n<p>\u00c9crivez un nouveau fichier <code>index.ts<\/code>et ajoutez-y ceci\u00a0:<\/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>Cela chargera le module que vous avez publi\u00e9 \u00e0 l&rsquo;\u00e9tape pr\u00e9c\u00e9dente et l&rsquo;utilisera pour inverser une cha\u00eene et enregistrer son r\u00e9sultat. Nous pouvons ex\u00e9cuter ceci avec Deno\u00a0:<\/p>\n<pre><code>deno run index.ts<\/code><\/pre>\n<p>il s&rsquo;affichera<\/p>\n<pre><code>fun is This<\/code><\/pre>\n<h2>\u00c0 ton tour<\/h2>\n<p>Dans le cas de modules complexes avec de nombreux modules d\u00e9pendants, vous pouvez utiliser le <a href=\"https:\/\/deno.land\/manual\/tools\/bundler\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bundler<\/a> de Deno qui compilera tout dans un seul module pour une publication plus facile. Avez-vous publi\u00e9 un module Deno\u00a0? Faites le nous savoir dans les commentaires! Et lisez nos autres articles sur Deno comme <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/10-excellentes-ressources-pour-apprendre-et-travailler-avec-deno\/\" title=\"10 excellentes ressources pour apprendre et travailler avec Deno\">10 excellentes ressources pour apprendre et travailler avec Deno<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <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 ne s&rsquo;appuie pas sur un serveur centralis\u00e9 comme npm. N&rsquo;importe qui peut publier un module sur son serveur. Apprenez \u00e0 cr\u00e9er, publier et utiliser un module 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":[1052,893,717,780,748,841],"tags":[1167],"class_list":["post-232097","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms-4","category-code-2","category-developpeur","category-logiciels-open-source","category-open-source-projektmanagement-2","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=232097"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232097\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/158005"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=232097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=232097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=232097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}